summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels.Ferramentas/SocioViewModel.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Ferramentas/SocioViewModel.cs')
-rw-r--r--Decompiler/Gestor.Application.ViewModels.Ferramentas/SocioViewModel.cs301
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));
+ }
+ }
+}