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/SocioViewModel.cs | |
| parent | 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff) | |
| download | gestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip | |
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Ferramentas/SocioViewModel.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.ViewModels.Ferramentas/SocioViewModel.cs | 301 |
1 files changed, 301 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Ferramentas/SocioViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Ferramentas/SocioViewModel.cs new file mode 100644 index 0000000..4e3466e --- /dev/null +++ b/Decompiler/Gestor.Application.ViewModels.Ferramentas/SocioViewModel.cs @@ -0,0 +1,301 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Threading.Tasks; +using Gestor.Application.Servicos.Ferramentas; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.ViewModels.Generic; +using Gestor.Common.Validation; +using Gestor.Model.Common; +using Gestor.Model.Domain.Common; +using Gestor.Model.Domain.Generic; + +namespace Gestor.Application.ViewModels.Ferramentas; + +public class SocioViewModel : BaseSegurosViewModel +{ + private readonly SocioServico _servico; + + public Socio CancelSocio; + + private ObservableCollection<Empresa> _empresas = new ObservableCollection<Empresa>(); + + private Empresa _selectedEmpresa; + + private Socio _selectedSocio = new Socio(); + + private ObservableCollection<Socio> _sociosFiltradas = new ObservableCollection<Socio>(); + + private bool _isExpanded; + + private bool _isLoading; + + public ObservableCollection<Empresa> Empresas + { + get + { + return _empresas; + } + set + { + _empresas = value; + OnPropertyChanged("Empresas"); + } + } + + public Empresa SelectedEmpresa + { + get + { + return _selectedEmpresa; + } + set + { + _selectedEmpresa = value; + WorkOnSelectedEmpresa(value); + OnPropertyChanged("SelectedEmpresa"); + } + } + + public Socio SelectedSocio + { + get + { + return _selectedSocio; + } + set + { + _selectedSocio = value; + WorkOnSelectedSocio(value); + VerificarEnables((value != null) ? new long?(((DomainBase)value).Id) : null); + OnPropertyChanged("SelectedSocio"); + } + } + + public ObservableCollection<Socio> SociosFiltradas + { + get + { + return _sociosFiltradas; + } + set + { + _sociosFiltradas = value; + IsExpanded = value != null && value.Count > 0; + OnPropertyChanged("SociosFiltradas"); + } + } + + public bool IsExpanded + { + get + { + return _isExpanded; + } + set + { + _isExpanded = value; + OnPropertyChanged("IsExpanded"); + } + } + + public List<Socio> Socios { get; set; } + + public bool IsLoading + { + get + { + return _isLoading; + } + set + { + _isLoading = value; + OnPropertyChanged("IsLoading"); + } + } + + public SocioViewModel() + { + //IL_000c: Unknown result type (might be due to invalid IL or missing references) + //IL_0016: Expected O, but got Unknown + _servico = new SocioServico(); + base.EnableMenu = true; + Seleciona(); + } + + private async void Seleciona() + { + Loading(isLoading: true); + await PermissaoTela((TipoTela)19); + Empresas = new ObservableCollection<Empresa>(await new EmpresaServico().BuscarEmpresas()); + Loading(isLoading: false); + SelectedEmpresa = Empresas.FirstOrDefault(); + } + + private async Task SelecionaSocios(long? id) + { + Socios = null; + SociosFiltradas = null; + if (id.HasValue && id != 0) + { + Loading(isLoading: true); + Socios = (await new BaseServico().BuscarSociosAsync(id.Value)).OrderBy((Socio x) => x.Nome).ToList(); + SociosFiltradas = new ObservableCollection<Socio>(Socios); + SelectedSocio = SociosFiltradas.FirstOrDefault(); + Loading(isLoading: false); + } + } + + private async void WorkOnSelectedEmpresa(Empresa value) + { + if (value != null && ((DomainBase)value).Id != 0L) + { + await SelecionaSocios(((DomainBase)value).Id); + } + } + + internal async Task<List<Socio>> Filtrar(string value) + { + return await Task.Run(() => FiltrarSocio(value)); + } + + public List<Socio> FiltrarSocio(string filter) + { + SociosFiltradas = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<Socio>(Socios) : new ObservableCollection<Socio>(from x in Socios + where ValidationHelper.RemoveDiacritics(x.Nome.Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter)) + orderby x.Nome + select x)); + return SociosFiltradas.ToList(); + } + + public async Task<List<KeyValuePair<string, string>>> Salvar() + { + List<KeyValuePair<string, string>> list = SelectedSocio.Validate(); + if (list.Count > 0) + { + return list; + } + string acao = ((((DomainBase)SelectedSocio).Id == 0L) ? "INCLUIU" : "ALTEROU"); + Socio value = await _servico.Save(SelectedSocio); + if (!_servico.Sucesso) + { + return null; + } + RegistrarAcao(acao + " SÓCIO \"" + value.Nome + "\"", ((DomainBase)value).Id, (TipoTela)19, $"ID: {((DomainBase)value).Id}\nTELEFONE: ({value.Prefixo}) {value.Telefone}\nE-MAIL: {value.Email}"); + if (Socios.Any((Socio x) => ((DomainBase)x).Id == ((DomainBase)value).Id)) + { + DomainBase.Copy<Socio, Socio>(Socios.First((Socio x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value); + } + else + { + Socios.Add(value); + } + if (SociosFiltradas.Any((Socio x) => ((DomainBase)x).Id == ((DomainBase)value).Id)) + { + DomainBase.Copy<Socio, Socio>(SociosFiltradas.First((Socio x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value); + } + else + { + SociosFiltradas.Add(value); + } + SociosFiltradas = new ObservableCollection<Socio>(SociosFiltradas); + WorkOnSelectedSocio(value, registrar: false); + Alterar(alterar: false); + ToggleSnackBar("SÓCIO SALVO COM SUCESSO"); + return null; + } + + public void CancelarAlteracao() + { + if (CancelSocio != null && Socios.Any((Socio x) => ((DomainBase)x).Id == ((DomainBase)CancelSocio).Id)) + { + DomainBase.Copy<Socio, Socio>(Socios.First((Socio x) => ((DomainBase)x).Id == ((DomainBase)CancelSocio).Id), CancelSocio); + if (SociosFiltradas.Count > 0 && SociosFiltradas.Any((Socio x) => ((DomainBase)x).Id == ((DomainBase)CancelSocio).Id)) + { + DomainBase.Copy<Socio, Socio>(SociosFiltradas.First((Socio x) => ((DomainBase)x).Id == ((DomainBase)CancelSocio).Id), CancelSocio); + } + else + { + SociosFiltradas.Add(CancelSocio); + } + SociosFiltradas = new ObservableCollection<Socio>(SociosFiltradas); + SelectedSocio = SociosFiltradas.First((Socio x) => ((DomainBase)x).Id == ((DomainBase)CancelSocio).Id); + } + else + { + Incluir(); + } + Alterar(alterar: false); + } + + public void Incluir() + { + //IL_0000: Unknown result type (might be due to invalid IL or missing references) + //IL_0005: Unknown result type (might be due to invalid IL or missing references) + //IL_0017: Expected O, but got Unknown + Socio selectedSocio = new Socio + { + IdEmpresa = ((DomainBase)SelectedEmpresa).Id + }; + SelectedSocio = selectedSocio; + Alterar(alterar: true); + } + + public async void Excluir() + { + if (SelectedSocio == null || ((DomainBase)SelectedSocio).Id == 0L || !(await ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO"))) + { + return; + } + Loading(isLoading: true); + IsLoading = true; + if (!(await _servico.Delete(SelectedSocio))) + { + Loading(isLoading: false); + IsLoading = false; + return; + } + RegistrarAcao("EXCLUIU SÓCIO \"" + SelectedSocio.Nome + "\"", ((DomainBase)SelectedSocio).Id, (TipoTela)19, $"ID: {((DomainBase)SelectedSocio).Id}\nTELEFONE: ({SelectedSocio.Prefixo}) {SelectedSocio.Telefone}\nE-MAIL: {SelectedSocio.Email}"); + int num = SociosFiltradas.IndexOf(SelectedSocio); + Socios.Remove(SelectedSocio); + SociosFiltradas.Remove(SelectedSocio); + SociosFiltradas = new ObservableCollection<Socio>(SociosFiltradas); + if (SociosFiltradas.Count > 0) + { + SelectedSocio = ((num < SociosFiltradas.Count) ? SociosFiltradas.ElementAt(num) : SociosFiltradas.Last()); + } + else + { + SelectedSocio = new Socio(); + Alterar(alterar: false); + } + Loading(isLoading: false); + IsLoading = false; + ToggleSnackBar("SÓCIO EXCLUÍDO COM SUCESSO"); + } + + private void WorkOnSelectedSocio(Socio value, bool registrar = true) + { + //IL_002e: Unknown result type (might be due to invalid IL or missing references) + //IL_0069: Unknown result type (might be due to invalid IL or missing references) + //IL_0070: Invalid comparison between Unknown and I4 + //IL_0109: Unknown result type (might be due to invalid IL or missing references) + CancelSocio = (Socio)((value == null || ((DomainBase)value).Id == 0L) ? ((object)CancelSocio) : ((object)(Socio)((DomainBase)value).Clone())); + if (value == null || ((DomainBase)value).Id == 0L || (LastAccessId == ((DomainBase)value).Id && (int)LastAccessTela == 19)) + { + return; + } + if (registrar) + { + RegistrarAcao("ACESSOU SÓCIO \"" + value.Nome + "\"", ((DomainBase)value).Id, (TipoTela)19, $"ID: {((DomainBase)value).Id}\nTELEFONE: ({value.Prefixo}) {value.Telefone}\nE-MAIL: {value.Email}"); + } + LastAccessId = ((DomainBase)value).Id; + LastAccessTela = (TipoTela)19; + Socio selectedSocio = SelectedSocio; + if (((selectedSocio != null) ? new long?(((DomainBase)selectedSocio).Id) : null) != ((DomainBase)value).Id) + { + SelectedSocio = ((IEnumerable<Socio>)SociosFiltradas).FirstOrDefault((Func<Socio, bool>)((Socio x) => ((DomainBase)x).Id == ((DomainBase)value).Id)); + } + } +} |