diff options
| author | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 15:29:41 +0000 |
|---|---|---|
| committer | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 15:29:41 +0000 |
| commit | 225aa1499e37faf9d38257caabbadc68d78b427e (patch) | |
| tree | 102bb7a40c58595348ae9d3c7076201759fe0720 /Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroParceiroViewModel.cs | |
| parent | 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff) | |
| download | gestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip | |
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroParceiroViewModel.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroParceiroViewModel.cs | 273 |
1 files changed, 273 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroParceiroViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroParceiroViewModel.cs new file mode 100644 index 0000000..b0abb9b --- /dev/null +++ b/Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroParceiroViewModel.cs @@ -0,0 +1,273 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Threading.Tasks; +using Gestor.Application.Helpers; +using Gestor.Application.Servicos; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.ViewModels.Generic; +using Gestor.Common.Validation; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; + +namespace Gestor.Application.ViewModels.Ferramentas; + +public class CadastroParceiroViewModel : BaseSegurosViewModel +{ + private readonly ParceiroServico _servico; + + private Parceiro _selectedParceiro; + + private ObservableCollection<Parceiro> _parceirosFiltrados = new ObservableCollection<Parceiro>(); + + private bool _isExpanded; + + public Parceiro CancelParceiro; + + private Item _selectedItem = new Item(); + + public List<Parceiro> Parceiros { get; set; } + + public Parceiro SelectedParceiro + { + get + { + return _selectedParceiro; + } + set + { + _selectedParceiro = value; + WorkOnSelectedParceiro(value); + VerificarEnables((value != null) ? new long?(((DomainBase)value).Id) : null); + OnPropertyChanged("SelectedParceiro"); + } + } + + public ObservableCollection<Parceiro> ParceirosFiltrados + { + get + { + return _parceirosFiltrados; + } + set + { + _parceirosFiltrados = value; + IsExpanded = value != null && value.Count > 0; + OnPropertyChanged("ParceirosFiltrados"); + } + } + + public bool IsExpanded + { + get + { + return _isExpanded; + } + set + { + _isExpanded = value; + OnPropertyChanged("IsExpanded"); + } + } + + public Item SelectedItem + { + get + { + return _selectedItem; + } + set + { + _selectedItem = value; + OnPropertyChanged("SelectedItem"); + } + } + + public CadastroParceiroViewModel(Parceiro parceiro) + { + //IL_000c: Unknown result type (might be due to invalid IL or missing references) + //IL_0016: Expected O, but got Unknown + _servico = new ParceiroServico(); + base.EnableMenu = true; + Seleciona(parceiro); + } + + private async void Seleciona(Parceiro parceiro) + { + Loading(isLoading: true); + await PermissaoTela((TipoTela)22); + await SelecionaParceiro(parceiro); + Loading(isLoading: false); + } + + public async void SelecionarParceiro(Parceiro parceiro) + { + if (parceiro == null) + { + SelectedParceiro = null; + return; + } + Parceiro val = await _servico.BuscarParceiro(((DomainBase)parceiro).Id); + DomainBase.Copy<Parceiro, Parceiro>(ParceirosFiltrados.First((Parceiro x) => ((DomainBase)x).Id == ((DomainBase)parceiro).Id), val); + SelectedParceiro = ParceirosFiltrados.First((Parceiro x) => ((DomainBase)x).Id == ((DomainBase)parceiro).Id); + } + + private async Task SelecionaParceiro(Parceiro parceiro = null) + { + Loading(isLoading: true); + Parceiros = (await new BaseServico().BuscarParceirosAsync()).OrderBy((Parceiro x) => x.Nome).ToList(); + ParceirosFiltrados = new ObservableCollection<Parceiro>(Parceiros); + SelecionarParceiro(parceiro ?? ParceirosFiltrados.FirstOrDefault()); + Loading(isLoading: false); + } + + private async void WorkOnSelectedParceiro(Parceiro value, bool registrar = true) + { + CancelParceiro = (Parceiro)((value == null || ((DomainBase)value).Id == 0L) ? ((object)CancelParceiro) : ((object)(Parceiro)((DomainBase)value).Clone())); + if (value == null || ((DomainBase)value).Id == 0L || (LastAccessId == ((DomainBase)value).Id && (int)LastAccessTela == 22)) + { + return; + } + if (registrar) + { + RegistrarAcao("ACESSOU PARCEIRO \"" + value.Nome + "\"", ((DomainBase)value).Id, (TipoTela)22, "DOCUMENTO: " + value.Cgccpf + "\nTELEFONE 1: (" + value.Ddd1 + ") " + value.Telefone1 + "\nTELEFONE 2: (" + value.Ddd2 + ") " + value.Telefone2 + "\nTELEFONE 3: (" + value.Ddd3 + ") " + value.Telefone3 + "\nE-MAIL: " + value.Email + "\n\nENDEREÇO: " + value.Endereco + ", " + value.Numero + ", " + (string.IsNullOrWhiteSpace(value.Complemento) ? "-" : (value.Complemento ?? "")) + ", " + value.Bairro + ", " + value.Cidade + "/" + value.Uf + " - " + value.Cep); + } + LastAccessId = ((DomainBase)value).Id; + LastAccessTela = (TipoTela)22; + Parceiro selectedParceiro = SelectedParceiro; + if (((selectedParceiro != null) ? new long?(((DomainBase)selectedParceiro).Id) : null) != ((DomainBase)value).Id) + { + Parceiro val = await _servico.BuscarParceiro(((DomainBase)value).Id); + DomainBase.Copy<Parceiro, Parceiro>(SelectedParceiro, val); + Parceiro selectedParceiro2 = SelectedParceiro; + if (selectedParceiro2 != null) + { + ((DomainBase)selectedParceiro2).Initialize(); + } + Initialized = true; + } + } + + internal async Task<List<Parceiro>> Filtrar(string value) + { + return await Task.Run(() => FiltrarParceiro(value)); + } + + public List<Parceiro> FiltrarParceiro(string filter) + { + ParceirosFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<Parceiro>(Parceiros) : new ObservableCollection<Parceiro>(Parceiros.Where((Parceiro x) => ValidationHelper.RemoveDiacritics(x.Nome.Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter))))); + return ParceirosFiltrados.ToList(); + } + + public void Incluir() + { + //IL_0001: Unknown result type (might be due to invalid IL or missing references) + //IL_000b: Expected O, but got Unknown + SelectedParceiro = new Parceiro(); + Alterar(alterar: true); + } + + public void CancelarAlteracao() + { + if (CancelParceiro != null && Parceiros.Any((Parceiro x) => ((DomainBase)x).Id == ((DomainBase)CancelParceiro).Id)) + { + DomainBase.Copy<Parceiro, Parceiro>(Parceiros.First((Parceiro x) => ((DomainBase)x).Id == ((DomainBase)CancelParceiro).Id), CancelParceiro); + if (ParceirosFiltrados.Count > 0 && ParceirosFiltrados.Any((Parceiro x) => ((DomainBase)x).Id == ((DomainBase)CancelParceiro).Id)) + { + DomainBase.Copy<Parceiro, Parceiro>(ParceirosFiltrados.First((Parceiro x) => ((DomainBase)x).Id == ((DomainBase)CancelParceiro).Id), CancelParceiro); + } + else + { + ParceirosFiltrados.Add(CancelParceiro); + } + ParceirosFiltrados = new ObservableCollection<Parceiro>(ParceirosFiltrados); + SelecionarParceiro(ParceirosFiltrados.First((Parceiro x) => ((DomainBase)x).Id == ((DomainBase)CancelParceiro).Id)); + } + else + { + Incluir(); + } + Alterar(alterar: false); + } + + public async Task<List<KeyValuePair<string, string>>> Salvar() + { + List<KeyValuePair<string, string>> list = SelectedParceiro.Validate(); + if (list.Count > 0) + { + return list; + } + string acao = ((((DomainBase)SelectedParceiro).Id == 0L) ? "INCLUIU" : "ALTEROU"); + Parceiro value = await _servico.Save(SelectedParceiro); + if (!_servico.Sucesso) + { + return null; + } + RegistrarAcao(acao + " PARCEIRO \"" + value.Nome + "\"", ((DomainBase)value).Id, (TipoTela)22, "DOCUMENTO: " + value.Cgccpf + "\nTELEFONE 1: (" + value.Ddd1 + ") " + value.Telefone1 + "\nTELEFONE 2: (" + value.Ddd2 + ") " + value.Telefone2 + "\nTELEFONE 3: (" + value.Ddd3 + ") " + value.Telefone3 + "\nE-MAIL: " + value.Email + "\n\nENDEREÇO: " + value.Endereco + ", " + value.Numero + ", " + (string.IsNullOrWhiteSpace(value.Complemento) ? "-" : (value.Complemento ?? "")) + ", " + value.Bairro + ", " + value.Cidade + "/" + value.Uf + " - " + value.Cep); + if (Parceiros.Any((Parceiro x) => ((DomainBase)x).Id == ((DomainBase)value).Id)) + { + DomainBase.Copy<Parceiro, Parceiro>(Parceiros.First((Parceiro x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value); + } + else + { + Parceiros.Add(value); + } + if (ParceirosFiltrados.Any((Parceiro x) => ((DomainBase)x).Id == ((DomainBase)value).Id)) + { + DomainBase.Copy<Parceiro, Parceiro>(ParceirosFiltrados.First((Parceiro x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value); + } + else + { + ParceirosFiltrados.Add(value); + } + ParceirosFiltrados = new ObservableCollection<Parceiro>(ParceirosFiltrados); + Recursos.Parceiros = Parceiros; + WorkOnSelectedParceiro(value, registrar: false); + Alterar(alterar: false); + ToggleSnackBar("PARCEIRO SALVO COM SUCESSO"); + return null; + } + + public async void Excluir() + { + if (SelectedParceiro == null || ((DomainBase)SelectedParceiro).Id == 0L) + { + return; + } + if (await new BaseServico().ParceiroUtilizado(((DomainBase)SelectedParceiro).Id)) + { + await ShowMessage("PARCEIRO NÃO PODE SER EXCLUÍDO POIS ESTÁ SENDO UTILIZADO."); + } + else + { + if (!(await ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO"))) + { + return; + } + Loading(isLoading: true); + if (!(await _servico.Delete(SelectedParceiro))) + { + Loading(isLoading: false); + return; + } + RegistrarAcao("EXCLUIU O PARCEIRO \"" + SelectedParceiro.Nome + "\"", ((DomainBase)SelectedParceiro).Id, (TipoTela)22, "DOCUMENTO: " + SelectedParceiro.Cgccpf + "\nTELEFONE 1: (" + SelectedParceiro.Ddd1 + ") " + SelectedParceiro.Telefone1 + "\nTELEFONE 2: (" + SelectedParceiro.Ddd2 + ") " + SelectedParceiro.Telefone2 + "\nTELEFONE 3: (" + SelectedParceiro.Ddd3 + ") " + SelectedParceiro.Telefone3 + "\nE-MAIL: " + SelectedParceiro.Email + "\n\nENDEREÇO: " + SelectedParceiro.Endereco + ", " + SelectedParceiro.Numero + ", " + (string.IsNullOrWhiteSpace(SelectedParceiro.Complemento) ? "-" : (SelectedParceiro.Complemento ?? "")) + ", " + SelectedParceiro.Bairro + ", " + SelectedParceiro.Cidade + "/" + SelectedParceiro.Uf + " - " + SelectedParceiro.Cep); + int num = ParceirosFiltrados.IndexOf(SelectedParceiro); + Parceiros.Remove(SelectedParceiro); + ParceirosFiltrados.Remove(SelectedParceiro); + ParceirosFiltrados = new ObservableCollection<Parceiro>(ParceirosFiltrados); + if (ParceirosFiltrados.Count > 0) + { + SelecionarParceiro((num < ParceirosFiltrados.Count) ? ParceirosFiltrados.ElementAt(num) : ParceirosFiltrados.Last()); + } + else + { + Incluir(); + Alterar(alterar: false); + base.EnableMenu = false; + } + Loading(isLoading: false); + ToggleSnackBar("PARCEIRO EXCLUÍDO COM SUCESSO"); + } + } +} |