using CsQuery.ExtensionMethods.Internal; using Gestor.Application.Helpers; using Gestor.Application.Servicos.Ferramentas; using Gestor.Application.Servicos.Generic; using Gestor.Application.ViewModels.Generic; using Gestor.Common.Validation; using Gestor.Model.Attributes; using Gestor.Model.Common; using Gestor.Model.Domain.Common; using Gestor.Model.Domain.Configuracoes; using Gestor.Model.Domain.Generic; using Gestor.Model.Domain.Seguros; using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Threading.Tasks; using System.Windows; namespace Gestor.Application.ViewModels.Ferramentas { public class VendedorViewModel : BaseSegurosViewModel { private readonly VendedorServico _servico; public Vendedor CancelVendedor; private Vendedor _selectedVendedor; private GridLength _gridHeight = new GridLength(1, GridUnitType.Star); private GridLength _gridHeight2 = new GridLength(0); private ObservableCollection _vendedoresFiltrados = new ObservableCollection(); private bool _isExpanded; private VendedorTelefone _selectedTelefone = new VendedorTelefone(); private ObservableCollection _telefones = new ObservableCollection(); private Repasse _selectedRepasse = new Repasse(); private ObservableCollection _repasses = new ObservableCollection(); private string _pesquisa; private Visibility _mostrarRamo; private ObservableCollection _ramos = new ObservableCollection(); private Visibility _visualizacaoPropriaCorretora { get; set; } = Visibility.Collapsed; public bool CoCorretagemAtiva { get; set; } = Recursos.Configuracoes.Any(new Func((// // Current member / type: System.Boolean Gestor.Application.ViewModels.Ferramentas.VendedorViewModel::CoCorretagemAtiva() // File path: C:\AggerSeguros\Gestor.Application.exe // // Product version: 0.0.0.0 // Exception in: System.Boolean CoCorretagemAtiva() // // Object reference not set to an instance of an object. // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.GetArgumentName(ParameterReference parameter) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 2276 // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.VisitLambdaParameterExpression(LambdaParameterExpression node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 4496 // at Telerik.JustDecompiler.Ast.BaseCodeVisitor.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Ast\BaseCodeVisitor.cs:line 351 // at Telerik.JustDecompiler.Languages.BaseLanguageWriter.Write(Action writeEntity) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseLanguageWriter.cs:line 339 // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 1133 // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.VisitMethodParametersInternal(IList`1 list, Boolean isExtensionMethod) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 2769 // at Telerik.JustDecompiler.Languages.CSharp.CSharpWriter.VisitLambdaExpression(LambdaExpression node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\CSharp\CSharpWriter.cs:line 1077 // at Telerik.JustDecompiler.Ast.BaseCodeVisitor.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Ast\BaseCodeVisitor.cs:line 351 // at Telerik.JustDecompiler.Languages.BaseLanguageWriter.Write(Action writeEntity) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseLanguageWriter.cs:line 339 // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 1133 // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.VisitDelegateCreationExpression(DelegateCreationExpression node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 4667 // at Telerik.JustDecompiler.Ast.BaseCodeVisitor.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Ast\BaseCodeVisitor.cs:line 351 // at Telerik.JustDecompiler.Languages.BaseLanguageWriter.Write(Action writeEntity) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseLanguageWriter.cs:line 339 // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 1133 // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.VisitMethodParametersInternal(IList`1 list, Boolean isExtensionMethod) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 2769 // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.VisitMethodInvocationExpression(MethodInvocationExpression node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 2750 // at Telerik.JustDecompiler.Ast.BaseCodeVisitor.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Ast\BaseCodeVisitor.cs:line 351 // at Telerik.JustDecompiler.Languages.BaseLanguageWriter.Write(Action writeEntity) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseLanguageWriter.cs:line 339 // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 1133 // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.WriteInitializedAutoProperty(PropertyDefinition property, Expression assignment) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 1457 // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Write(PropertyDefinition property) // at Telerik.JustDecompiler.Languages.BaseLanguageWriter.WriteInternal(IMemberDefinition member) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseLanguageWriter.cs:line 583 // // mailto: JustDecompilePublicFeedback@telerik.com public GridLength GridHeight { get { return this._gridHeight; } set { this._gridHeight = value; base.OnPropertyChanged("GridHeight"); } } public GridLength GridHeight2 { get { return this._gridHeight2; } set { this._gridHeight2 = value; base.OnPropertyChanged("GridHeight2"); } } public bool IsExpanded { get { return this._isExpanded; } set { this._isExpanded = value; base.OnPropertyChanged("IsExpanded"); } } public Visibility MostrarRamo { get { return this._mostrarRamo; } set { this._mostrarRamo = value; base.OnPropertyChanged("MostrarRamo"); } } public string Pesquisa { get { return this._pesquisa; } set { this._pesquisa = value; base.OnPropertyChanged("Pesquisa"); } } public ObservableCollection Ramos { get { return this._ramos; } set { this._ramos = value; base.OnPropertyChanged("Ramos"); } } public ObservableCollection Repasses { get { return this._repasses; } set { if (value != null && value.Count > 0) { foreach (Repasse repasse in value) { if (repasse.get_Ramo() != null) { continue; } repasse.set_Ramo(new Ramo()); } } this._repasses = value; base.OnPropertyChanged("Repasses"); } } public Repasse SelectedRepasse { get { return this._selectedRepasse; } set { this._selectedRepasse = value; base.OnPropertyChanged("SelectedRepasse"); } } public VendedorTelefone SelectedTelefone { get { return this._selectedTelefone; } set { this._selectedTelefone = value; base.OnPropertyChanged("SelectedTelefone"); } } public Vendedor SelectedVendedor { get { return this._selectedVendedor; } set { long? nullable; this._selectedVendedor = value; this.WorkOnSelectedVendedor(value, true); if (value != null) { nullable = new long?(value.get_Id()); } else { nullable = null; } base.VerificarEnables(nullable); base.OnPropertyChanged("SelectedVendedor"); } } public ObservableCollection Telefones { get { return this._telefones; } set { this._telefones = value; base.OnPropertyChanged("Telefones"); } } public List TiposRepasseFiltrados { get { return Enum.GetValues(typeof(TipoRepasse)).Cast().Where((TipoRepasse tipo) => { TipoAttribute tipoAttribute = (TipoAttribute)typeof(TipoRepasse).GetField(tipo.ToString()).GetCustomAttributes(typeof(TipoAttribute), false).FirstOrDefault(); if (tipoAttribute == null || tipoAttribute.get_Tipo() == "0" || this.CoCorretagemAtiva) { return true; } TipoRepasse? nullable = this.SelectedRepasse.get_Tipo(); return tipo == nullable.GetValueOrDefault() & nullable.HasValue; }).ToList(); } } public List Vendedores { get; set; } public ObservableCollection VendedoresFiltrados { get { return this._vendedoresFiltrados; } set { this._vendedoresFiltrados = value; this.IsExpanded = (value != null ? value.Count > 0 : false); base.OnPropertyChanged("VendedoresFiltrados"); } } public Visibility VisualizacaoPropriaCorretora { get { return this._visualizacaoPropriaCorretora; } set { this._visualizacaoPropriaCorretora = value; base.OnPropertyChanged("VisualizacaoPropriaCorretora"); } } public VendedorViewModel() { this._servico = new VendedorServico(); base.EnableMenu = true; this.Seleciona(); } public async Task AtivarInativarRepasse(Repasse repasse) { bool id; Ramo ramo; object obj; string str; if (repasse != null && repasse.get_Id() != 0) { str = (repasse.get_Ativo() ? "INATIVOU REPASSE" : "ATIVOU REPASSE"); repasse.set_Ativo(!repasse.get_Ativo()); Repasse repasse1 = repasse; Ramo ramo1 = repasse.get_Ramo(); if (ramo1 != null) { id = ramo1.get_Id() == (long)0; } else { id = false; } if (id) { ramo = null; } else { ramo = repasse.get_Ramo(); } repasse1.set_Ramo(ramo); repasse = await this._servico.Save(repasse); long num = this.SelectedVendedor.get_Id(); VendedorViewModel vendedorViewModel = this; string str1 = string.Concat(str, " \"", this.SelectedVendedor.get_Nome(), "\""); long id1 = this.SelectedVendedor.get_Id(); TipoTela? nullable = new TipoTela?(15); object[] objArray = new object[] { repasse.get_Id(), repasse.get_ValorNovo(), repasse.get_ValorRenovacao(), null }; obj = (repasse.get_Ativo() ? "SIM" : "NÃO"); objArray[3] = obj; vendedorViewModel.RegistrarAcao(str1, id1, nullable, string.Format("ID: {0}\nVALOR NOVO: {1:N2}\nVALOR RENOVAÇÃO: {2:N2}\nATIVO: {3}", objArray)); this.Pesquisa = string.Empty; this.SelectedVendedor = null; await this.SelecionaVendedores(false); this.SelectedVendedor = this.VendedoresFiltrados.FirstOrDefault((Vendedor x) => x.get_Id() == num); Recursos.Vendedores = this.Vendedores; base.Alterar(false); base.ToggleSnackBar("REPASSE SALVO COM SUCESSO", true); } str = null; } public async Task AtivarInativarVendedor(Vendedor vendedor) { object nome; object obj; string str; Vendedor vendedor1 = vendedor; if (vendedor1 != null && vendedor1.get_Id() != 0) { str = (vendedor1.get_Ativo() ? "INATIVOU VENDEDOR" : "ATIVOU VENDEDOR"); vendedor1.set_Ativo(!vendedor1.get_Ativo()); Vendedor vendedor2 = await this._servico.Save(vendedor1, this.Repasses.ToList()); vendedor1 = vendedor2; VendedorViewModel vendedorViewModel = this; string str1 = string.Concat(str, " \"", vendedor1.get_Nome(), "\""); long id = vendedor1.get_Id(); TipoTela? nullable = new TipoTela?(15); object[] agencia = new object[] { vendedor1.get_Id(), Recursos.Empresas.First((Empresa x) => x.get_Id() == (vendedor1.get_IdEmpresa() == 0 ? (long)1 : vendedor1.get_IdEmpresa())).get_Nome(), vendedor1.get_Documento(), null, null, null, null, null }; Banco banco = vendedor1.get_Banco(); if (banco != null) { nome = banco.get_Nome(); } else { nome = null; } agencia[3] = nome; agencia[4] = vendedor1.get_Agencia(); agencia[5] = vendedor1.get_Conta(); agencia[6] = vendedor1.get_Desconto(); obj = (vendedor1.get_Ativo() ? "SIM" : "NÃO"); agencia[7] = obj; vendedorViewModel.RegistrarAcao(str1, id, nullable, string.Format("ID: {0}\nFILIAL DO VENDEDOR: {1}\nDOCUMENTO: {2}\nBANCO: {3}\nAGÊNCIA: {4}\nCONTA: {5}\nDESCONTO: {6:N2}\nATIVO: {7}", agencia)); this.Pesquisa = string.Empty; this.SelectedVendedor = null; await this.SelecionaVendedores(false); this.SelectedVendedor = this.VendedoresFiltrados.FirstOrDefault((Vendedor x) => x.get_Id() == vendedor1.get_Id()); Recursos.Vendedores = this.Vendedores; base.Alterar(false); base.ToggleSnackBar("VENDEDOR SALVO COM SUCESSO", true); } str = null; } public void CancelarAlteracao() { if (this.CancelVendedor == null || !this.Vendedores.Any((Vendedor x) => x.get_Id() == this.CancelVendedor.get_Id())) { this.Incluir(); } else { DomainBase.Copy(this.Vendedores.First((Vendedor x) => x.get_Id() == this.CancelVendedor.get_Id()), this.CancelVendedor); if (this.VendedoresFiltrados.Count <= 0 || !this.VendedoresFiltrados.Any((Vendedor x) => x.get_Id() == this.CancelVendedor.get_Id())) { this.VendedoresFiltrados.Add(this.CancelVendedor); } else { DomainBase.Copy(this.VendedoresFiltrados.First((Vendedor x) => x.get_Id() == this.CancelVendedor.get_Id()), this.CancelVendedor); } this.VendedoresFiltrados = new ObservableCollection(this.VendedoresFiltrados); this.SelectedVendedor = this.VendedoresFiltrados.First((Vendedor x) => x.get_Id() == this.CancelVendedor.get_Id()); } base.Alterar(false); } public void ExcluirTelefone(VendedorTelefone telefone) { this.Telefones.Remove(telefone); } public async Task ExcluirVinculo(VinculoRepasse vinculo) { if (await base.ShowMessage("DESEJA REALMENTE EXCLUIR O VÍNCULO DO REPASSE SELECIONADO?", "SIM", "NÃO", false)) { await this._servico.Delete(vinculo); this.Repasses = new ObservableCollection((IEnumerable)await this._servico.BuscaRepassesPorIdVendedor(this.SelectedVendedor.get_Id())); base.ToggleSnackBar("VINCULO EXCLUÍDO COM SUCESSO", true); } } internal async Task> Filtrar(string value) { List vendedors = await Task.Run>(() => this.FiltrarVendedor(value)); return vendedors; } public List FiltrarVendedor(string filter) { this.VendedoresFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection(this.Vendedores) : new ObservableCollection( from x in this.Vendedores where ValidationHelper.RemoveDiacritics(x.get_Nome().Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter)) orderby x.get_Ativo() descending, x.get_Nome() select x)); this.SelectedVendedor = this.VendedoresFiltrados.FirstOrDefault(); return this.VendedoresFiltrados.ToList(); } public void Incluir() { Vendedor vendedor = new Vendedor(); vendedor.set_Ativo(true); vendedor.set_Desconto(new decimal?(new decimal())); this.SelectedVendedor = vendedor; this.Telefones = new ObservableCollection(); this.Repasses = new ObservableCollection(); base.Alterar(true); } public void IncluirRepasse() { if (this.SelectedVendedor == null) { return; } if (this.Repasses == null) { this.Repasses = new ObservableCollection(); } Repasse repasse = new Repasse(); repasse.set_Vendedor(this.SelectedVendedor); repasse.set_Forma(new FormaRepasse?(1)); repasse.set_Incidencia(new TipoIncidencia?(1)); repasse.set_Tipo(new TipoRepasse?(2)); repasse.set_Ativo(true); repasse.set_Ramo(this.Ramos.First()); Repasse repasse1 = repasse; this.Repasses.Insert(0, repasse1); this.SelectedRepasse = repasse1; } public void IncluirTelefone() { if (this.SelectedVendedor == null) { return; } if (this.Telefones == null) { this.Telefones = new ObservableCollection(); } VendedorTelefone vendedorTelefone = new VendedorTelefone(); vendedorTelefone.set_Vendedor(this.SelectedVendedor); vendedorTelefone.set_Tipo(new TipoTelefone?(1)); VendedorTelefone vendedorTelefone1 = vendedorTelefone; this.Telefones.Add(vendedorTelefone1); this.SelectedTelefone = vendedorTelefone1; } public async Task>> Salvar() { List> keyValuePairs1; string str; object nome; object obj; VendedorViewModel.u003cu003ec__DisplayClass55_0 variable; List list; string str1; this.SelectedVendedor.set_Telefones(this.Telefones.ToList()); List> keyValuePairs2 = this.SelectedVendedor.Validate(); List> keyValuePairs3 = keyValuePairs2; keyValuePairs3.AddRange(await this.Validate()); keyValuePairs3 = null; if (keyValuePairs2.Count <= 0) { Vendedor selectedVendedor = this.SelectedVendedor; ObservableCollection telefones = this.Telefones; selectedVendedor.set_Telefones(( from x in telefones where !string.IsNullOrEmpty(x.get_Nome()) select x).ToList()); List repasses = this.Repasses.ToList(); list = repasses.Where((Repasse x) => { List> keyValuePairs = x.Validate(); if (keyValuePairs == null) { return false; } return keyValuePairs.Count == 0; }).ToList(); if (list.Count < this.Repasses.Count) { if (!await base.ShowMessage(string.Concat("HÁ REPASSES INVÁLIDOS, DESEJA PROSSEGUIR?", Environment.NewLine, "CASO PROSSIGA OS REPASSES INVÁLIDOS NÃO SERÃO SALVOS."), "SIM", "NÃO", false)) { this.Repasses.ToList().ForEach((Repasse x) => keyValuePairs2.AddRange(x.Validate())); keyValuePairs1 = keyValuePairs2; variable = null; list = null; str1 = null; return keyValuePairs1; } } this.Repasses = new ObservableCollection(list); str = (this.SelectedVendedor.get_Id() == 0 ? "INCLUIU" : "ALTEROU"); str1 = str; Vendedor vendedor = await this._servico.Save(this.SelectedVendedor, this.Repasses.ToList()); Vendedor vendedor1 = vendedor; if (this._servico.Sucesso) { VendedorViewModel vendedorViewModel = this; string str2 = string.Concat(str1, " VENDEDOR \"", vendedor1.get_Nome(), "\""); long id = vendedor1.get_Id(); TipoTela? nullable = new TipoTela?(15); object[] agencia = new object[] { vendedor1.get_Id(), Recursos.Empresas.First((Empresa x) => x.get_Id() == (vendedor1.get_IdEmpresa() == 0 ? (long)1 : vendedor1.get_IdEmpresa())).get_Nome(), vendedor1.get_Documento(), null, null, null, null, null }; Banco banco = vendedor1.get_Banco(); if (banco != null) { nome = banco.get_Nome(); } else { nome = null; } agencia[3] = nome; agencia[4] = vendedor1.get_Agencia(); agencia[5] = vendedor1.get_Conta(); agencia[6] = vendedor1.get_Desconto(); obj = (vendedor1.get_Ativo() ? "SIM" : "NÃO"); agencia[7] = obj; vendedorViewModel.RegistrarAcao(str2, id, nullable, string.Format("ID: {0}\nFILIAL DO VENDEDOR: {1}\nDOCUMENTO: {2}\nBANCO: {3}\nAGÊNCIA: {4}\nCONTA: {5}\nDESCONTO: {6:N2}\nATIVO: {7}", agencia)); this.Pesquisa = string.Empty; this.SelectedVendedor = null; await this.SelecionaVendedores(false); this.SelectedVendedor = this.VendedoresFiltrados.FirstOrDefault((Vendedor x) => x.get_Id() == vendedor1.get_Id()); Recursos.Vendedores = this.Vendedores; base.Alterar(false); base.ToggleSnackBar("VENDEDOR SALVO COM SUCESSO", true); keyValuePairs1 = null; } else { keyValuePairs1 = null; } } else { keyValuePairs1 = keyValuePairs2; } variable = null; list = null; str1 = null; return keyValuePairs1; } public async Task SalvarVinculo(VinculoRepasse vinculo) { await this._servico.Save(vinculo); this.Repasses = new ObservableCollection((IEnumerable)await this._servico.BuscaRepassesPorIdVendedor(this.SelectedVendedor.get_Id())); base.ToggleSnackBar("VINCULO SALVO COM SUCESSO", true); } private async void Seleciona() { base.Loading(true); await base.PermissaoTela(15); await this.SelecionaVendedores(true); await this.SelecionaRamos(); base.Loading(false); } private async Task SelecionaRamos() { Visibility visibility; VendedorViewModel vendedorViewModel = this; List configuracoes = Recursos.Configuracoes; visibility = (configuracoes.All((ConfiguracaoSistema x) => x.get_Configuracao() != 20) ? Visibility.Collapsed : Visibility.Visible); vendedorViewModel.MostrarRamo = visibility; ObservableCollection ramos = this.Ramos; Ramo ramo = new Ramo(); ramo.set_Nome("TODOS OS RAMOS"); ramos.Add(ramo); List ramos1 = await (new BaseServico()).BuscarRamosAsync(); ObservableCollection observableCollection = this.Ramos; List ramos2 = ramos1; IEnumerable ativo = from x in ramos2 where x.get_Ativo() select x; ExtensionMethods.AddRange(observableCollection, from x in ativo orderby x.get_Nome() select x); } private async Task SelecionaVendedores(bool selecionar = true) { List vendedors = await (new BaseServico()).BuscarVendedoresAsync(); VendedorViewModel list = this; List vendedors1 = vendedors; IEnumerable vendedors2 = vendedors1.Where((Vendedor x) => { if (Recursos.Usuario.get_IdEmpresa() == (long)1) { return true; } return x.get_IdEmpresa() == Recursos.Usuario.get_IdEmpresa(); }); IOrderedEnumerable ativo = from x in vendedors2 orderby x.get_Ativo() descending select x; list.Vendedores = ativo.ThenBy((Vendedor x) => x.get_Nome()).ToList(); this.VendedoresFiltrados = new ObservableCollection(this.Vendedores); if (selecionar) { this.SelectedVendedor = this.VendedoresFiltrados.FirstOrDefault(); } Recursos.Vendedores = vendedors; } private async Task>> Validate() { List vendedors; IEnumerable repasses; List> keyValuePairs = new List>(); if (!ValidationHelper.ValidateDocument(this.SelectedVendedor.get_Documento())) { vendedors = new List(); } else { vendedors = await (new BaseServico()).BuscarVendedor(this.SelectedVendedor.get_Documento()); } Vendedor vendedor = vendedors.FirstOrDefault((Vendedor x) => { if (x.get_Id() == this.SelectedVendedor.get_Id() || !(x.get_Documento() == this.SelectedVendedor.get_Documento())) { return false; } return x.get_Ativo(); }); if (vendedor != null) { List configuracoes = Recursos.Configuracoes; if (configuracoes.All((ConfiguracaoSistema x) => x.get_Configuracao() != 7)) { keyValuePairs.Add(new KeyValuePair("Documento", string.Concat("O DOCUMENTO JÁ ESTÁ CADASTRADO PARA O VENDEDOR ", vendedor.get_Nome(), "."))); } } List configuracaoSistemas = Recursos.Configuracoes; if (configuracaoSistemas.All((ConfiguracaoSistema x) => x.get_Configuracao() != 15)) { ObservableCollection observableCollection = this.Repasses; if (observableCollection != null) { repasses = observableCollection.Where((Repasse x) => { if (x.get_Tipo().GetValueOrDefault() != 2) { return false; } if (x.get_ValorNovo() > new decimal(100)) { return true; } return x.get_ValorRenovacao() > new decimal(100); }); } else { repasses = null; } IEnumerable repasses1 = repasses; if (repasses1 != null && repasses1.Any()) { keyValuePairs.Add(new KeyValuePair("VALOR REPASSE", "O VALOR DE REPASSE NÃO PODE SER SUPERIOR A 100%")); } } ObservableCollection observableCollection1 = await this._servico.BuscaRepassesPorIdVendedor(this.SelectedVendedor.get_Id()); if (observableCollection1 != null && observableCollection1.Count > 0) { foreach (Repasse repasse1 in observableCollection1) { if (!this.Repasses.Any((Repasse repasse) => { long? nullable; long? nullable1; long? nullable2; bool id; if (repasse1.get_Id() != repasse.get_Id()) { return false; } TipoRepasse? tipo = repasse1.get_Tipo(); TipoRepasse? tipo1 = repasse.get_Tipo(); if (tipo.GetValueOrDefault() == tipo1.GetValueOrDefault() & tipo.HasValue == tipo1.HasValue && !(repasse1.get_ValorNovo() != repasse.get_ValorNovo()) && !(repasse1.get_ValorRenovacao() != repasse.get_ValorRenovacao())) { TipoIncidencia? incidencia = repasse1.get_Incidencia(); TipoIncidencia? incidencia1 = repasse.get_Incidencia(); if (incidencia.GetValueOrDefault() == incidencia1.GetValueOrDefault() & incidencia.HasValue == incidencia1.HasValue) { FormaRepasse? forma = repasse1.get_Forma(); FormaRepasse? forma1 = repasse.get_Forma(); if (forma.GetValueOrDefault() == forma1.GetValueOrDefault() & forma.HasValue == forma1.HasValue) { BaseRepasse? @base = repasse1.get_Base(); BaseRepasse? base1 = repasse.get_Base(); if (@base.GetValueOrDefault() == base1.GetValueOrDefault() & @base.HasValue == base1.HasValue) { long? seguradora = repasse1.get_Seguradora(); long? seguradora1 = repasse.get_Seguradora(); if (seguradora.GetValueOrDefault() == seguradora1.GetValueOrDefault() & seguradora.HasValue == seguradora1.HasValue) { if (repasse1.get_Ramo() == null) { Ramo ramo = repasse.get_Ramo(); id = (ramo != null ? ramo.get_Id() != (long)0 : true); if (!id) { return false; } } Ramo ramo1 = repasse1.get_Ramo(); if (ramo1 != null) { nullable1 = new long?(ramo1.get_Id()); } else { nullable = null; nullable1 = nullable; } seguradora1 = nullable1; Ramo ramo2 = repasse.get_Ramo(); if (ramo2 != null) { nullable2 = new long?(ramo2.get_Id()); } else { nullable = null; nullable2 = nullable; } seguradora = nullable2; return !(seguradora1.GetValueOrDefault() == seguradora.GetValueOrDefault() & seguradora1.HasValue == seguradora.HasValue); } } } } } return true; })) { continue; } if (await this._servico.BuscarVendedorParcela(repasse1.get_Id()).Count > 1) { keyValuePairs.Add(new KeyValuePair("REPASSE", string.Format("O REPASSE, DE ID {0}, NÃO PODE SER ALTERADO POIS JÁ ESTÁ CADASTRADO EM ALGUM DOCUMENTO!", repasse1.get_Id()))); } } } List> keyValuePairs1 = keyValuePairs; keyValuePairs = null; return keyValuePairs1; } private async void WorkOnSelectedVendedor(Vendedor value, bool registrar = true) { Vendedor vendedor; long? nullable; bool corretora; bool flag; object nome; object obj; VendedorViewModel vendedorViewModel = this; vendedor = (value == null || value.get_Id() == 0 ? this.CancelVendedor : (Vendedor)value.Clone()); vendedorViewModel.CancelVendedor = vendedor; if (value != null && value.get_Id() != 0) { base.Loading(true); this.Repasses = new ObservableCollection((IEnumerable)await this._servico.BuscaRepassesPorIdVendedor(value.get_Id())); this.Telefones = new ObservableCollection((IEnumerable)await this._servico.BuscarTelefonesAsync(value.get_Id())); base.Loading(false); if (this.LastAccessId != value.get_Id() || this.LastAccessTela != 15) { if (registrar) { VendedorViewModel vendedorViewModel1 = this; string str = string.Concat("ACESSOU VENDEDOR \"", value.get_Nome(), "\""); long id = value.get_Id(); TipoTela? nullable1 = new TipoTela?(15); object[] agencia = new object[] { value.get_Id(), Recursos.Empresas.First((Empresa x) => x.get_Id() == (value.get_IdEmpresa() == 0 ? (long)1 : value.get_IdEmpresa())).get_Nome(), value.get_Documento(), null, null, null, null, null }; Banco banco = value.get_Banco(); if (banco != null) { nome = banco.get_Nome(); } else { nome = null; } agencia[3] = nome; agencia[4] = value.get_Agencia(); agencia[5] = value.get_Conta(); agencia[6] = value.get_Desconto(); obj = (value.get_Ativo() ? "SIM" : "NÃO"); agencia[7] = obj; vendedorViewModel1.RegistrarAcao(str, id, nullable1, string.Format("ID: {0}\nFILIAL DO VENDEDOR: {1}\nDOCUMENTO: {2}\nBANCO: {3}\nAGÊNCIA: {4}\nCONTA: {5}\nDESCONTO: {6:N2}\nATIVO: {7}", agencia)); } this.LastAccessId = value.get_Id(); this.LastAccessTela = 15; Vendedor selectedVendedor = this.SelectedVendedor; if (selectedVendedor != null) { nullable = new long?(selectedVendedor.get_Id()); } else { nullable = null; } long? nullable2 = nullable; long num = value.get_Id(); if (nullable2.GetValueOrDefault() != num | !nullable2.HasValue) { this.SelectedVendedor = this.VendedoresFiltrados.FirstOrDefault((Vendedor x) => x.get_Id() == value.get_Id()); } VendedorViewModel vendedorViewModel2 = this; Vendedor selectedVendedor1 = this.SelectedVendedor; if (selectedVendedor1 != null) { corretora = selectedVendedor1.get_Corretora(); } else { corretora = false; } vendedorViewModel2.VisualizacaoPropriaCorretora = (corretora ? Visibility.Visible : Visibility.Collapsed); if (Recursos.Usuario.get_Id() == 0) { Vendedor vendedor1 = this.SelectedVendedor; if (vendedor1 != null) { flag = vendedor1.get_Corretora(); } else { flag = false; } if (!flag) { this._alterarPermissEnabled = false; base.EnableAlterar = false; } else { this._alterarPermissEnabled = true; base.EnableAlterar = true; } } } } } } }