summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusViewModel.cs
diff options
context:
space:
mode:
authorLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 15:29:41 +0000
committerLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 15:29:41 +0000
commit225aa1499e37faf9d38257caabbadc68d78b427e (patch)
tree102bb7a40c58595348ae9d3c7076201759fe0720 /Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusViewModel.cs
parent1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff)
downloadgestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz
gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusViewModel.cs')
-rw-r--r--Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusViewModel.cs295
1 files changed, 295 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusViewModel.cs
new file mode 100644
index 0000000..2f758d1
--- /dev/null
+++ b/Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusViewModel.cs
@@ -0,0 +1,295 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Threading.Tasks;
+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.Common;
+using Gestor.Model.Domain.Generic;
+using Gestor.Model.Domain.Seguros;
+
+namespace Gestor.Application.ViewModels.Ferramentas;
+
+public class StatusViewModel : BaseSegurosViewModel
+{
+ private readonly StatusServico _servico;
+
+ private Status _selectedStatus;
+
+ public Status CancelStatus;
+
+ private ObservableCollection<Status> _statusFiltrados = new ObservableCollection<Status>();
+
+ private bool _isExpanded;
+
+ public Status SelectedStatus
+ {
+ get
+ {
+ return _selectedStatus;
+ }
+ set
+ {
+ _selectedStatus = value;
+ WorkOnSelectedStatus(value);
+ VerificarEnables((value != null) ? new long?(((DomainBase)value).Id) : null);
+ OnPropertyChanged("SelectedStatus");
+ }
+ }
+
+ public ObservableCollection<Status> StatusFiltrados
+ {
+ get
+ {
+ return _statusFiltrados;
+ }
+ set
+ {
+ _statusFiltrados = value;
+ IsExpanded = value != null && value.Count > 0;
+ OnPropertyChanged("StatusFiltrados");
+ }
+ }
+
+ public bool IsExpanded
+ {
+ get
+ {
+ return _isExpanded;
+ }
+ set
+ {
+ _isExpanded = value;
+ OnPropertyChanged("IsExpanded");
+ }
+ }
+
+ public List<Status> Status { get; set; }
+
+ public StatusViewModel()
+ {
+ _servico = new StatusServico();
+ base.EnableMenu = true;
+ Seleciona();
+ }
+
+ private async void Seleciona()
+ {
+ Loading(isLoading: true);
+ await PermissaoTela((TipoTela)11);
+ await SelecionaStatuses();
+ Loading(isLoading: false);
+ }
+
+ private async Task SelecionaStatuses()
+ {
+ Loading(isLoading: true);
+ Status = (from x in await new BaseServico().BuscarStatusAsync()
+ orderby x.Ativo descending, x.Nome
+ select x).ToList();
+ StatusFiltrados = new ObservableCollection<Status>(Status);
+ SelectedStatus = StatusFiltrados.FirstOrDefault();
+ Recursos.Status = Status;
+ Loading(isLoading: false);
+ }
+
+ public async Task<List<KeyValuePair<string, string>>> Validate()
+ {
+ if (string.IsNullOrWhiteSpace(SelectedStatus.Nome))
+ {
+ return new List<KeyValuePair<string, string>>();
+ }
+ List<KeyValuePair<string, string>> errors = new List<KeyValuePair<string, string>>();
+ bool valida = true;
+ List<Status> list = await new BaseServico().BuscarStatus(SelectedStatus.Nome);
+ if (list.Count > 0)
+ {
+ list.ForEach(delegate(Status x)
+ {
+ if (((DomainBase)x).Id != ((DomainBase)SelectedStatus).Id && x.Nome == SelectedStatus.Nome)
+ {
+ valida = false;
+ }
+ });
+ }
+ if (!valida)
+ {
+ errors.Add(new KeyValuePair<string, string>("Nome", "UM STATUS COM O MESMO NOME JÁ EXISTE."));
+ }
+ return errors;
+ }
+
+ public async Task<List<KeyValuePair<string, string>>> Salvar()
+ {
+ List<KeyValuePair<string, string>> errorMessages = SelectedStatus.Validate();
+ List<KeyValuePair<string, string>> list = errorMessages;
+ list.AddRange(await Validate());
+ if (errorMessages.Count > 0)
+ {
+ return errorMessages;
+ }
+ string acao = ((((DomainBase)SelectedStatus).Id == 0L) ? "INCLUIU" : "ALTEROU");
+ Status value = await _servico.Save(SelectedStatus);
+ if (!_servico.Sucesso)
+ {
+ return null;
+ }
+ RegistrarAcao(acao + " STATUS ID \"" + value.Nome + "\"", ((DomainBase)value).Id, (TipoTela)11, string.Format("ID: {0}\nATIVO: {1}", ((DomainBase)value).Id, value.Ativo ? "SIM" : "NÃO"));
+ if (Status.Any((Status x) => ((DomainBase)x).Id == ((DomainBase)value).Id))
+ {
+ DomainBase.Copy<Status, Status>(Status.First((Status x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value);
+ }
+ else
+ {
+ Status.Add(value);
+ }
+ if (StatusFiltrados.Any((Status x) => ((DomainBase)x).Id == ((DomainBase)value).Id))
+ {
+ DomainBase.Copy<Status, Status>(StatusFiltrados.First((Status x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value);
+ }
+ else
+ {
+ StatusFiltrados.Add(value);
+ }
+ StatusFiltrados = new ObservableCollection<Status>(StatusFiltrados);
+ WorkOnSelectedStatus(value, registrar: false);
+ Recursos.Status = Status;
+ Alterar(alterar: false);
+ ToggleSnackBar("STATUS SALVO COM SUCESSO");
+ return null;
+ }
+
+ public void CancelarAlteracao()
+ {
+ if (CancelStatus != null && Status.Any((Status x) => ((DomainBase)x).Id == ((DomainBase)CancelStatus).Id))
+ {
+ DomainBase.Copy<Status, Status>(Status.First((Status x) => ((DomainBase)x).Id == ((DomainBase)CancelStatus).Id), CancelStatus);
+ if (StatusFiltrados.Count > 0 && StatusFiltrados.Any((Status x) => ((DomainBase)x).Id == ((DomainBase)CancelStatus).Id))
+ {
+ DomainBase.Copy<Status, Status>(StatusFiltrados.First((Status x) => ((DomainBase)x).Id == ((DomainBase)CancelStatus).Id), CancelStatus);
+ }
+ else
+ {
+ StatusFiltrados.Add(CancelStatus);
+ }
+ StatusFiltrados = new ObservableCollection<Status>(StatusFiltrados);
+ SelectedStatus = StatusFiltrados.First((Status x) => ((DomainBase)x).Id == ((DomainBase)CancelStatus).Id);
+ }
+ else
+ {
+ Incluir();
+ }
+ Alterar(alterar: false);
+ }
+
+ public void Incluir()
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0006: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0012: Expected O, but got Unknown
+ SelectedStatus = new Status
+ {
+ Ativo = true
+ };
+ Alterar(alterar: true);
+ }
+
+ internal async Task<List<Status>> Filtrar(string value)
+ {
+ return await Task.Run(() => FiltrarStatus(value));
+ }
+
+ public List<Status> FiltrarStatus(string filter)
+ {
+ StatusFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<Status>(Status) : new ObservableCollection<Status>(from x in Status
+ where ValidationHelper.RemoveDiacritics(x.Nome.Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter))
+ orderby x.Ativo descending, x.Nome
+ select x));
+ return StatusFiltrados.ToList();
+ }
+
+ public async void SelecionaStatus(Status status)
+ {
+ Status val = await _servico.BuscarStatusPorId(((DomainBase)status).Id);
+ DomainBase.Copy<Status, Status>(StatusFiltrados.First((Status x) => ((DomainBase)x).Id == ((DomainBase)status).Id), val);
+ SelectedStatus = StatusFiltrados.First((Status x) => ((DomainBase)x).Id == ((DomainBase)status).Id);
+ }
+
+ public async void Excluir()
+ {
+ if (SelectedStatus == null || ((DomainBase)SelectedStatus).Id == 0L)
+ {
+ return;
+ }
+ Loading(isLoading: true);
+ List<Documento> list = await new BaseServico().BuscarDocumentosPorStatus(((DomainBase)SelectedStatus).Id);
+ Loading(isLoading: false);
+ if (list.Count > 0)
+ {
+ string text = "ESTIPULANTE NÃO PODE SER EXCLUÍDO POIS ESTÁ VINCULADO AOS SEGUINTES DOCUMENTOS:";
+ foreach (Documento item in list)
+ {
+ text = ((!string.IsNullOrWhiteSpace(item.Apolice)) ? (text + $"{Environment.NewLine}DOCUMENTO {list.IndexOf(item) + 1} (NÚMERO DA PROPOSTA: {item.Proposta}, NÚMERO DA APÓLICE: {item.Apolice})") : (text + $"{Environment.NewLine}DOCUMENTO {list.IndexOf(item) + 1} (NÚMERO DA PROPOSTA: {item.Proposta})"));
+ }
+ await ShowMessage(text);
+ }
+ else
+ {
+ if (!(await ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO")))
+ {
+ return;
+ }
+ Loading(isLoading: true);
+ if (!(await _servico.Delete(SelectedStatus)))
+ {
+ Loading(isLoading: false);
+ return;
+ }
+ RegistrarAcao("EXCLUIU STATUS \"" + SelectedStatus.Nome + "\"", ((DomainBase)SelectedStatus).Id, (TipoTela)11, string.Format("ID: {0}\nATIVO: {1}", ((DomainBase)SelectedStatus).Id, SelectedStatus.Ativo ? "SIM" : "NÃO"));
+ int num = StatusFiltrados.IndexOf(SelectedStatus);
+ Status.Remove(SelectedStatus);
+ StatusFiltrados.Remove(SelectedStatus);
+ StatusFiltrados = new ObservableCollection<Status>(StatusFiltrados);
+ if (StatusFiltrados.Count > 0)
+ {
+ SelectedStatus = ((num < StatusFiltrados.Count) ? StatusFiltrados.ElementAt(num) : StatusFiltrados.Last());
+ }
+ else
+ {
+ SelectedStatus = new Status();
+ Alterar(alterar: false);
+ base.EnableMenu = false;
+ }
+ Loading(isLoading: false);
+ ToggleSnackBar("ESTIPULANTE EXCLUÍDO COM SUCESSO");
+ }
+ }
+
+ private void WorkOnSelectedStatus(Status 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_00ef: Unknown result type (might be due to invalid IL or missing references)
+ CancelStatus = (Status)((value == null || ((DomainBase)value).Id == 0L) ? ((object)CancelStatus) : ((object)(Status)((DomainBase)value).Clone()));
+ if (value == null || ((DomainBase)value).Id == 0L || (LastAccessId == ((DomainBase)value).Id && (int)LastAccessTela == 11))
+ {
+ return;
+ }
+ if (registrar)
+ {
+ RegistrarAcao("ACESSOU STATUS \"" + value.Nome + "\"", ((DomainBase)value).Id, (TipoTela)11, string.Format("ID: {0}\nATIVO: {1}", ((DomainBase)value).Id, value.Ativo ? "SIM" : "NÃO"));
+ }
+ LastAccessId = ((DomainBase)value).Id;
+ LastAccessTela = (TipoTela)11;
+ Status selectedStatus = SelectedStatus;
+ if (((selectedStatus != null) ? new long?(((DomainBase)selectedStatus).Id) : null) != ((DomainBase)value).Id)
+ {
+ SelectedStatus = ((IEnumerable<Status>)StatusFiltrados).FirstOrDefault((Func<Status, bool>)((Status x) => ((DomainBase)x).Id == ((DomainBase)value).Id));
+ }
+ }
+}