diff options
| author | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 13:38:18 +0000 |
|---|---|---|
| committer | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 13:38:18 +0000 |
| commit | 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (patch) | |
| tree | e1c3b20ea08f0cf71122a1e73f0d395f8fd83874 /Codemerx/Gestor.Application/ViewModels/Ferramentas/StatusViewModel.cs | |
| parent | 674ca83ba9243a9e95a7568c797668dab6aee26a (diff) | |
| download | gestor-1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1.tar.gz gestor-1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1.zip | |
chore: location
Diffstat (limited to 'Codemerx/Gestor.Application/ViewModels/Ferramentas/StatusViewModel.cs')
| -rw-r--r-- | Codemerx/Gestor.Application/ViewModels/Ferramentas/StatusViewModel.cs | 367 |
1 files changed, 367 insertions, 0 deletions
diff --git a/Codemerx/Gestor.Application/ViewModels/Ferramentas/StatusViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Ferramentas/StatusViewModel.cs new file mode 100644 index 0000000..93b36c1 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Ferramentas/StatusViewModel.cs @@ -0,0 +1,367 @@ +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;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Diagnostics;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using System.Threading.Tasks;
+
+namespace Gestor.Application.ViewModels.Ferramentas
+{
+ public class StatusViewModel : BaseSegurosViewModel
+ {
+ private readonly StatusServico _servico;
+
+ private Gestor.Model.Domain.Seguros.Status _selectedStatus;
+
+ public Gestor.Model.Domain.Seguros.Status CancelStatus;
+
+ private ObservableCollection<Gestor.Model.Domain.Seguros.Status> _statusFiltrados = new ObservableCollection<Gestor.Model.Domain.Seguros.Status>();
+
+ private bool _isExpanded;
+
+ public bool IsExpanded
+ {
+ get
+ {
+ return this._isExpanded;
+ }
+ set
+ {
+ this._isExpanded = value;
+ base.OnPropertyChanged("IsExpanded");
+ }
+ }
+
+ public Gestor.Model.Domain.Seguros.Status SelectedStatus
+ {
+ get
+ {
+ return this._selectedStatus;
+ }
+ set
+ {
+ long? nullable;
+ this._selectedStatus = value;
+ this.WorkOnSelectedStatus(value, true);
+ if (value != null)
+ {
+ nullable = new long?(value.get_Id());
+ }
+ else
+ {
+ nullable = null;
+ }
+ base.VerificarEnables(nullable);
+ base.OnPropertyChanged("SelectedStatus");
+ }
+ }
+
+ public List<Gestor.Model.Domain.Seguros.Status> Status
+ {
+ get;
+ set;
+ }
+
+ public ObservableCollection<Gestor.Model.Domain.Seguros.Status> StatusFiltrados
+ {
+ get
+ {
+ return this._statusFiltrados;
+ }
+ set
+ {
+ this._statusFiltrados = value;
+ this.IsExpanded = (value != null ? value.Count > 0 : false);
+ base.OnPropertyChanged("StatusFiltrados");
+ }
+ }
+
+ public StatusViewModel()
+ {
+ this._servico = new StatusServico();
+ base.EnableMenu = true;
+ this.Seleciona();
+ }
+
+ public void CancelarAlteracao()
+ {
+ if (this.CancelStatus == null || !this.Status.Any<Gestor.Model.Domain.Seguros.Status>((Gestor.Model.Domain.Seguros.Status x) => x.get_Id() == this.CancelStatus.get_Id()))
+ {
+ this.Incluir();
+ }
+ else
+ {
+ DomainBase.Copy<Gestor.Model.Domain.Seguros.Status, Gestor.Model.Domain.Seguros.Status>(this.Status.First<Gestor.Model.Domain.Seguros.Status>((Gestor.Model.Domain.Seguros.Status x) => x.get_Id() == this.CancelStatus.get_Id()), this.CancelStatus);
+ if (this.StatusFiltrados.Count <= 0 || !this.StatusFiltrados.Any<Gestor.Model.Domain.Seguros.Status>((Gestor.Model.Domain.Seguros.Status x) => x.get_Id() == this.CancelStatus.get_Id()))
+ {
+ this.StatusFiltrados.Add(this.CancelStatus);
+ }
+ else
+ {
+ DomainBase.Copy<Gestor.Model.Domain.Seguros.Status, Gestor.Model.Domain.Seguros.Status>(this.StatusFiltrados.First<Gestor.Model.Domain.Seguros.Status>((Gestor.Model.Domain.Seguros.Status x) => x.get_Id() == this.CancelStatus.get_Id()), this.CancelStatus);
+ }
+ this.StatusFiltrados = new ObservableCollection<Gestor.Model.Domain.Seguros.Status>(this.StatusFiltrados);
+ this.SelectedStatus = this.StatusFiltrados.First<Gestor.Model.Domain.Seguros.Status>((Gestor.Model.Domain.Seguros.Status x) => x.get_Id() == this.CancelStatus.get_Id());
+ }
+ base.Alterar(false);
+ }
+
+ public async void Excluir()
+ {
+ object obj;
+ Gestor.Model.Domain.Seguros.Status statu;
+ if (this.SelectedStatus != null && this.SelectedStatus.get_Id() != 0)
+ {
+ base.Loading(true);
+ List<Documento> documentos = await (new BaseServico()).BuscarDocumentosPorStatus(this.SelectedStatus.get_Id());
+ base.Loading(false);
+ if (documentos.Count > 0)
+ {
+ string str = "ESTIPULANTE NÃO PODE SER EXCLUÍDO POIS ESTÁ VINCULADO AOS SEGUINTES DOCUMENTOS:";
+ foreach (Documento documento in documentos)
+ {
+ if (!string.IsNullOrWhiteSpace(documento.get_Apolice()))
+ {
+ object[] newLine = new object[] { Environment.NewLine, documentos.IndexOf(documento) + 1, documento.get_Proposta(), documento.get_Apolice() };
+ str = string.Concat(str, string.Format("{0}DOCUMENTO {1} (NÚMERO DA PROPOSTA: {2}, NÚMERO DA APÓLICE: {3})", newLine));
+ }
+ else
+ {
+ str = string.Concat(str, string.Format("{0}DOCUMENTO {1} (NÚMERO DA PROPOSTA: {2})", Environment.NewLine, documentos.IndexOf(documento) + 1, documento.get_Proposta()));
+ }
+ }
+ await base.ShowMessage(str, "OK", "", false);
+ }
+ else if (await base.ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO", false))
+ {
+ base.Loading(true);
+ if (await this._servico.Delete(this.SelectedStatus))
+ {
+ StatusViewModel statusViewModel = this;
+ string str1 = string.Concat("EXCLUIU STATUS \"", this.SelectedStatus.get_Nome(), "\"");
+ long id = this.SelectedStatus.get_Id();
+ TipoTela? nullable = new TipoTela?(11);
+ object id1 = this.SelectedStatus.get_Id();
+ obj = (this.SelectedStatus.get_Ativo() ? "SIM" : "NÃO");
+ statusViewModel.RegistrarAcao(str1, id, nullable, string.Format("ID: {0}\nATIVO: {1}", id1, obj));
+ int num = this.StatusFiltrados.IndexOf(this.SelectedStatus);
+ this.Status.Remove(this.SelectedStatus);
+ this.StatusFiltrados.Remove(this.SelectedStatus);
+ this.StatusFiltrados = new ObservableCollection<Gestor.Model.Domain.Seguros.Status>(this.StatusFiltrados);
+ if (this.StatusFiltrados.Count <= 0)
+ {
+ this.SelectedStatus = new Gestor.Model.Domain.Seguros.Status();
+ base.Alterar(false);
+ base.EnableMenu = false;
+ }
+ else
+ {
+ StatusViewModel statusViewModel1 = this;
+ statu = (num < this.StatusFiltrados.Count ? this.StatusFiltrados.ElementAt<Gestor.Model.Domain.Seguros.Status>(num) : this.StatusFiltrados.Last<Gestor.Model.Domain.Seguros.Status>());
+ statusViewModel1.SelectedStatus = statu;
+ }
+ base.Loading(false);
+ base.ToggleSnackBar("ESTIPULANTE EXCLUÍDO COM SUCESSO", true);
+ }
+ else
+ {
+ base.Loading(false);
+ }
+ }
+ }
+ }
+
+ internal async Task<List<Gestor.Model.Domain.Seguros.Status>> Filtrar(string value)
+ {
+ List<Gestor.Model.Domain.Seguros.Status> statuses = await Task.Run<List<Gestor.Model.Domain.Seguros.Status>>(() => this.FiltrarStatus(value));
+ return statuses;
+ }
+
+ public List<Gestor.Model.Domain.Seguros.Status> FiltrarStatus(string filter)
+ {
+ this.StatusFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<Gestor.Model.Domain.Seguros.Status>(this.Status) : new ObservableCollection<Gestor.Model.Domain.Seguros.Status>(
+ from x in this.Status
+ where ValidationHelper.RemoveDiacritics(x.get_Nome().Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter))
+ orderby x.get_Ativo() descending, x.get_Nome()
+ select x));
+ return this.StatusFiltrados.ToList<Gestor.Model.Domain.Seguros.Status>();
+ }
+
+ public void Incluir()
+ {
+ Gestor.Model.Domain.Seguros.Status statu = new Gestor.Model.Domain.Seguros.Status();
+ statu.set_Ativo(true);
+ this.SelectedStatus = statu;
+ base.Alterar(true);
+ }
+
+ public async Task<List<KeyValuePair<string, string>>> Salvar()
+ {
+ List<KeyValuePair<string, string>> keyValuePairs;
+ string str;
+ object obj;
+ string str1;
+ List<KeyValuePair<string, string>> keyValuePairs1 = this.SelectedStatus.Validate();
+ List<KeyValuePair<string, string>> keyValuePairs2 = keyValuePairs1;
+ keyValuePairs2.AddRange(await this.Validate());
+ keyValuePairs2 = null;
+ if (keyValuePairs1.Count <= 0)
+ {
+ str = (this.SelectedStatus.get_Id() == 0 ? "INCLUIU" : "ALTEROU");
+ str1 = str;
+ Gestor.Model.Domain.Seguros.Status statu = await this._servico.Save(this.SelectedStatus);
+ if (this._servico.Sucesso)
+ {
+ StatusViewModel statusViewModel = this;
+ string str2 = string.Concat(str1, " STATUS ID \"", statu.get_Nome(), "\"");
+ long id = statu.get_Id();
+ TipoTela? nullable = new TipoTela?(11);
+ object id1 = statu.get_Id();
+ obj = (statu.get_Ativo() ? "SIM" : "NÃO");
+ statusViewModel.RegistrarAcao(str2, id, nullable, string.Format("ID: {0}\nATIVO: {1}", id1, obj));
+ if (!this.Status.Any<Gestor.Model.Domain.Seguros.Status>((Gestor.Model.Domain.Seguros.Status x) => x.get_Id() == statu.get_Id()))
+ {
+ this.Status.Add(statu);
+ }
+ else
+ {
+ DomainBase.Copy<Gestor.Model.Domain.Seguros.Status, Gestor.Model.Domain.Seguros.Status>(this.Status.First<Gestor.Model.Domain.Seguros.Status>((Gestor.Model.Domain.Seguros.Status x) => x.get_Id() == statu.get_Id()), statu);
+ }
+ if (!this.StatusFiltrados.Any<Gestor.Model.Domain.Seguros.Status>((Gestor.Model.Domain.Seguros.Status x) => x.get_Id() == statu.get_Id()))
+ {
+ this.StatusFiltrados.Add(statu);
+ }
+ else
+ {
+ DomainBase.Copy<Gestor.Model.Domain.Seguros.Status, Gestor.Model.Domain.Seguros.Status>(this.StatusFiltrados.First<Gestor.Model.Domain.Seguros.Status>((Gestor.Model.Domain.Seguros.Status x) => x.get_Id() == statu.get_Id()), statu);
+ }
+ this.StatusFiltrados = new ObservableCollection<Gestor.Model.Domain.Seguros.Status>(this.StatusFiltrados);
+ this.WorkOnSelectedStatus(statu, false);
+ Recursos.Status = this.Status;
+ base.Alterar(false);
+ base.ToggleSnackBar("STATUS SALVO COM SUCESSO", true);
+ keyValuePairs = null;
+ }
+ else
+ {
+ keyValuePairs = null;
+ }
+ }
+ else
+ {
+ keyValuePairs = keyValuePairs1;
+ }
+ keyValuePairs1 = null;
+ str1 = null;
+ return keyValuePairs;
+ }
+
+ private async void Seleciona()
+ {
+ base.Loading(true);
+ await base.PermissaoTela(11);
+ await this.SelecionaStatuses();
+ base.Loading(false);
+ }
+
+ public async void SelecionaStatus(Gestor.Model.Domain.Seguros.Status status)
+ {
+ Gestor.Model.Domain.Seguros.Status statu = await this._servico.BuscarStatusPorId(status.get_Id());
+ DomainBase.Copy<Gestor.Model.Domain.Seguros.Status, Gestor.Model.Domain.Seguros.Status>(this.StatusFiltrados.First<Gestor.Model.Domain.Seguros.Status>((Gestor.Model.Domain.Seguros.Status x) => x.get_Id() == status.get_Id()), statu);
+ this.SelectedStatus = this.StatusFiltrados.First<Gestor.Model.Domain.Seguros.Status>((Gestor.Model.Domain.Seguros.Status x) => x.get_Id() == status.get_Id());
+ }
+
+ private async Task SelecionaStatuses()
+ {
+ base.Loading(true);
+ List<Gestor.Model.Domain.Seguros.Status> statuses = await (new BaseServico()).BuscarStatusAsync();
+ StatusViewModel list = this;
+ List<Gestor.Model.Domain.Seguros.Status> statuses1 = statuses;
+ IOrderedEnumerable<Gestor.Model.Domain.Seguros.Status> ativo =
+ from x in statuses1
+ orderby x.get_Ativo() descending
+ select x;
+ list.Status = ativo.ThenBy<Gestor.Model.Domain.Seguros.Status, string>((Gestor.Model.Domain.Seguros.Status x) => x.get_Nome()).ToList<Gestor.Model.Domain.Seguros.Status>();
+ this.StatusFiltrados = new ObservableCollection<Gestor.Model.Domain.Seguros.Status>(this.Status);
+ this.SelectedStatus = this.StatusFiltrados.FirstOrDefault<Gestor.Model.Domain.Seguros.Status>();
+ Recursos.Status = this.Status;
+ base.Loading(false);
+ }
+
+ public async Task<List<KeyValuePair<string, string>>> Validate()
+ {
+ List<KeyValuePair<string, string>> keyValuePairs;
+ List<KeyValuePair<string, string>> keyValuePairs1;
+ if (!string.IsNullOrWhiteSpace(this.SelectedStatus.get_Nome()))
+ {
+ keyValuePairs1 = new List<KeyValuePair<string, string>>();
+ bool flag = true;
+ List<Gestor.Model.Domain.Seguros.Status> statuses = await (new BaseServico()).BuscarStatus(this.SelectedStatus.get_Nome());
+ if (statuses.Count > 0)
+ {
+ statuses.ForEach((Gestor.Model.Domain.Seguros.Status x) => {
+ if (x.get_Id() == this.SelectedStatus.get_Id())
+ {
+ return;
+ }
+ if (x.get_Nome() == this.SelectedStatus.get_Nome())
+ {
+ flag = false;
+ }
+ });
+ }
+ if (!flag)
+ {
+ keyValuePairs1.Add(new KeyValuePair<string, string>("Nome", "UM STATUS COM O MESMO NOME JÁ EXISTE."));
+ }
+ keyValuePairs = keyValuePairs1;
+ }
+ else
+ {
+ keyValuePairs = new List<KeyValuePair<string, string>>();
+ }
+ keyValuePairs1 = null;
+ return keyValuePairs;
+ }
+
+ private void WorkOnSelectedStatus(Gestor.Model.Domain.Seguros.Status value, bool registrar = true)
+ {
+ long? nullable;
+ this.CancelStatus = (value == null || value.get_Id() == 0 ? this.CancelStatus : (Gestor.Model.Domain.Seguros.Status)value.Clone());
+ if (value == null || value.get_Id() == 0 || this.LastAccessId == value.get_Id() && this.LastAccessTela == 11)
+ {
+ return;
+ }
+ if (registrar)
+ {
+ base.RegistrarAcao(string.Concat("ACESSOU STATUS \"", value.get_Nome(), "\""), value.get_Id(), new TipoTela?(11), string.Format("ID: {0}\nATIVO: {1}", value.get_Id(), (value.get_Ativo() ? "SIM" : "NÃO")));
+ }
+ this.LastAccessId = value.get_Id();
+ this.LastAccessTela = 11;
+ Gestor.Model.Domain.Seguros.Status selectedStatus = this.SelectedStatus;
+ if (selectedStatus != null)
+ {
+ nullable = new long?(selectedStatus.get_Id());
+ }
+ else
+ {
+ nullable = null;
+ }
+ long? nullable1 = nullable;
+ long id = value.get_Id();
+ if (nullable1.GetValueOrDefault() != id | !nullable1.HasValue)
+ {
+ this.SelectedStatus = this.StatusFiltrados.FirstOrDefault<Gestor.Model.Domain.Seguros.Status>((Gestor.Model.Domain.Seguros.Status x) => x.get_Id() == value.get_Id());
+ }
+ }
+ }
+}
\ No newline at end of file |