summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusProspeccaoViewModel.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusProspeccaoViewModel.cs')
-rw-r--r--Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusProspeccaoViewModel.cs263
1 files changed, 263 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusProspeccaoViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusProspeccaoViewModel.cs
new file mode 100644
index 0000000..5397aca
--- /dev/null
+++ b/Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusProspeccaoViewModel.cs
@@ -0,0 +1,263 @@
+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;
+using Gestor.Application.Servicos.Ferramentas;
+using Gestor.Application.ViewModels.Generic;
+using Gestor.Common.Validation;
+using Gestor.Model.Common;
+using Gestor.Model.Domain.Ferramentas;
+using Gestor.Model.Domain.Generic;
+
+namespace Gestor.Application.ViewModels.Ferramentas;
+
+public class StatusProspeccaoViewModel : BaseSegurosViewModel
+{
+ private readonly StatusProspeccaoServico _servico;
+
+ private readonly ProspeccaoServico _servicoProspeccao;
+
+ public StatusDeProspeccao CancelStatusProspeccao;
+
+ private ObservableCollection<StatusDeProspeccao> _statusProspeccaoFiltrados = new ObservableCollection<StatusDeProspeccao>();
+
+ private bool _isExpanded;
+
+ private StatusDeProspeccao _selectedStatusProspeccao;
+
+ public List<StatusDeProspeccao> StatusProspeccao { get; set; }
+
+ public ObservableCollection<StatusDeProspeccao> StatusProspeccaoFiltrados
+ {
+ get
+ {
+ return _statusProspeccaoFiltrados;
+ }
+ set
+ {
+ _statusProspeccaoFiltrados = value;
+ IsExpanded = value != null && value.Count > 0;
+ OnPropertyChanged("StatusProspeccaoFiltrados");
+ }
+ }
+
+ public bool IsExpanded
+ {
+ get
+ {
+ return _isExpanded;
+ }
+ set
+ {
+ _isExpanded = value;
+ OnPropertyChanged("IsExpanded");
+ }
+ }
+
+ public StatusDeProspeccao SelectedStatusProspeccao
+ {
+ get
+ {
+ return _selectedStatusProspeccao;
+ }
+ set
+ {
+ _selectedStatusProspeccao = value;
+ WorkOnSelectedStatusProspeccao(value);
+ VerificarEnables((value != null) ? new long?(((DomainBase)value).Id) : null);
+ OnPropertyChanged("SelectedStatusProspeccao");
+ }
+ }
+
+ public StatusProspeccaoViewModel()
+ {
+ _servico = new StatusProspeccaoServico();
+ _servicoProspeccao = new ProspeccaoServico();
+ base.EnableMenu = true;
+ Seleciona();
+ }
+
+ private async void Seleciona()
+ {
+ Loading(isLoading: true);
+ await PermissaoTela((TipoTela)57);
+ await SelecionaStatusProspeccao();
+ Loading(isLoading: false);
+ }
+
+ private async Task SelecionaStatusProspeccao()
+ {
+ Loading(isLoading: true);
+ StatusProspeccao = (from x in await _servico.BuscarProspeccoes()
+ where !x.Excluido
+ orderby x.Ativo descending, x.Nome
+ select x).ToList();
+ StatusProspeccaoFiltrados = new ObservableCollection<StatusDeProspeccao>(StatusProspeccao);
+ SelectedStatusProspeccao = StatusProspeccaoFiltrados.FirstOrDefault();
+ Loading(isLoading: false);
+ }
+
+ public async Task<List<StatusDeProspeccao>> Filtrar(string value)
+ {
+ return await Task.Run(() => FiltrarStatusProspeccao(value));
+ }
+
+ public List<StatusDeProspeccao> FiltrarStatusProspeccao(string filter)
+ {
+ StatusProspeccaoFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<StatusDeProspeccao>(StatusProspeccao) : new ObservableCollection<StatusDeProspeccao>(from x in StatusProspeccao
+ where ValidationHelper.RemoveDiacritics(x.Nome.Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter))
+ orderby x.Ativo descending, x.Nome
+ select x));
+ SelectedStatusProspeccao = StatusProspeccaoFiltrados.FirstOrDefault();
+ return StatusProspeccaoFiltrados.ToList();
+ }
+
+ 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_000d: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0019: Expected O, but got Unknown
+ SelectedStatusProspeccao = new StatusDeProspeccao
+ {
+ Ativo = true,
+ Excluido = false
+ };
+ Alterar(alterar: true);
+ }
+
+ public async Task<List<KeyValuePair<string, string>>> Salvar()
+ {
+ List<KeyValuePair<string, string>> list = SelectedStatusProspeccao.Validate();
+ list.AddRange(Validate());
+ if (list.Count > 0)
+ {
+ return list;
+ }
+ string acao = ((((DomainBase)SelectedStatusProspeccao).Id == 0L) ? "INCLUIU" : "ALTEROU");
+ StatusDeProspeccao value = await _servico.Save(SelectedStatusProspeccao);
+ if (!_servico.Sucesso)
+ {
+ return null;
+ }
+ RegistrarAcao(acao + " STATUS DE PROSPECÇÃO \"" + value.Nome + "\"", ((DomainBase)value).Id, (TipoTela)57, string.Format("ID: {0}\nATIVO: {1}\nDESCRIÇÃO: \"{2}\"", ((DomainBase)value).Id, value.Ativo ? "SIM" : "NÃO", value.Descricao));
+ if (StatusProspeccao.Any((StatusDeProspeccao x) => ((DomainBase)x).Id == ((DomainBase)value).Id))
+ {
+ DomainBase.Copy<StatusDeProspeccao, StatusDeProspeccao>(StatusProspeccao.First((StatusDeProspeccao x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value);
+ }
+ else
+ {
+ StatusProspeccao.Add(value);
+ }
+ if (StatusProspeccaoFiltrados.Any((StatusDeProspeccao x) => ((DomainBase)x).Id == ((DomainBase)value).Id))
+ {
+ DomainBase.Copy<StatusDeProspeccao, StatusDeProspeccao>(StatusProspeccaoFiltrados.First((StatusDeProspeccao x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value);
+ }
+ else
+ {
+ StatusProspeccaoFiltrados.Add(value);
+ }
+ StatusProspeccaoFiltrados = new ObservableCollection<StatusDeProspeccao>(StatusProspeccaoFiltrados);
+ WorkOnSelectedStatusProspeccao(value, registrar: false);
+ Recursos.StatusProspeccao = StatusProspeccao;
+ Alterar(alterar: false);
+ ToggleSnackBar("STATUS DE PROSPECÇÃO SALVO COM SUCESSO");
+ return null;
+ }
+
+ public List<KeyValuePair<string, string>> Validate()
+ {
+ List<KeyValuePair<string, string>> list = new List<KeyValuePair<string, string>>();
+ if (string.IsNullOrWhiteSpace(SelectedStatusProspeccao.Nome))
+ {
+ return list;
+ }
+ if (StatusProspeccao.Any((StatusDeProspeccao x) => x.Nome.Contains(SelectedStatusProspeccao.Nome) && ((DomainBase)x).Id != ((DomainBase)SelectedStatusProspeccao).Id))
+ {
+ list.Add(new KeyValuePair<string, string>("Nome", "UM STATUS DE PROSPECÇÃO COM O MESMO NOME JÁ EXISTE."));
+ }
+ return list;
+ }
+
+ public void CancelarAlteracao()
+ {
+ if (CancelStatusProspeccao != null && StatusProspeccao.Any((StatusDeProspeccao x) => ((DomainBase)x).Id == ((DomainBase)CancelStatusProspeccao).Id))
+ {
+ DomainBase.Copy<StatusDeProspeccao, StatusDeProspeccao>(StatusProspeccao.First((StatusDeProspeccao x) => ((DomainBase)x).Id == ((DomainBase)CancelStatusProspeccao).Id), CancelStatusProspeccao);
+ if (StatusProspeccaoFiltrados.Count > 0 && StatusProspeccaoFiltrados.Any((StatusDeProspeccao x) => ((DomainBase)x).Id == ((DomainBase)CancelStatusProspeccao).Id))
+ {
+ DomainBase.Copy<StatusDeProspeccao, StatusDeProspeccao>(StatusProspeccaoFiltrados.First((StatusDeProspeccao x) => ((DomainBase)x).Id == ((DomainBase)CancelStatusProspeccao).Id), CancelStatusProspeccao);
+ }
+ else
+ {
+ StatusProspeccaoFiltrados.Add(CancelStatusProspeccao);
+ }
+ StatusProspeccaoFiltrados = new ObservableCollection<StatusDeProspeccao>(StatusProspeccaoFiltrados);
+ SelectedStatusProspeccao = StatusProspeccaoFiltrados.First((StatusDeProspeccao x) => ((DomainBase)x).Id == ((DomainBase)CancelStatusProspeccao).Id);
+ }
+ else
+ {
+ Incluir();
+ }
+ Alterar(alterar: false);
+ }
+
+ public async void Excluir()
+ {
+ if (SelectedStatusProspeccao == null || ((DomainBase)SelectedStatusProspeccao).Id == 0L)
+ {
+ return;
+ }
+ if ((await _servicoProspeccao.BuscarProspeccoesPorStatus(SelectedStatusProspeccao)).Count > 0)
+ {
+ await ShowMessage("O STATUS " + SelectedStatusProspeccao.Nome + ", NÃO PODE SER EXCLUÍDO, POIS ESTÁ CADASTRADO EM UMA PROSPECÇÃO");
+ }
+ else if (await ShowMessage("DESEJA REALMENTE EXCLUIR O STATUS DE PROSPECÇÃO " + SelectedStatusProspeccao.Nome + "?", "SIM", "NÃO"))
+ {
+ Loading(isLoading: true);
+ SelectedStatusProspeccao.Excluido = true;
+ SelectedStatusProspeccao.Ativo = false;
+ await _servico.Save(SelectedStatusProspeccao);
+ if (!_servico.Sucesso)
+ {
+ Loading(isLoading: false);
+ return;
+ }
+ RegistrarAcao("EXCLUIU STATUS DE PROSPECÇÃO \"" + SelectedStatusProspeccao.Nome + "\"", ((DomainBase)SelectedStatusProspeccao).Id, (TipoTela)57, string.Format("ID: {0}\nATIVO: {1}\nDESCRIÇÃO: \"{2}\"", ((DomainBase)SelectedStatusProspeccao).Id, SelectedStatusProspeccao.Ativo ? "SIM" : "NÃO", SelectedStatusProspeccao.Descricao));
+ StatusProspeccao.Remove(SelectedStatusProspeccao);
+ StatusProspeccaoFiltrados.Remove(SelectedStatusProspeccao);
+ Recursos.StatusProspeccao.Remove(SelectedStatusProspeccao);
+ SelectedStatusProspeccao = StatusProspeccaoFiltrados.FirstOrDefault();
+ await SelecionaStatusProspeccao();
+ Loading(isLoading: false);
+ ToggleSnackBar("STATUS DE PROSPECÇÃO EXCLUÍDO COM SUCESSO");
+ }
+ }
+
+ private void WorkOnSelectedStatusProspeccao(StatusDeProspeccao 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_00fa: Unknown result type (might be due to invalid IL or missing references)
+ CancelStatusProspeccao = (StatusDeProspeccao)((value == null || ((DomainBase)value).Id == 0L) ? ((object)CancelStatusProspeccao) : ((object)(StatusDeProspeccao)((DomainBase)value).Clone()));
+ if (value == null || ((DomainBase)value).Id == 0L || (LastAccessId == ((DomainBase)value).Id && (int)LastAccessTela == 57))
+ {
+ return;
+ }
+ if (registrar)
+ {
+ RegistrarAcao("ACESSOU STATUS DE PROSPECÇÃO \"" + value.Nome + "\"", ((DomainBase)value).Id, (TipoTela)57, string.Format("ID: {0}\nATIVO: {1}\nDESCRIÇÃO: \"{2}\"", ((DomainBase)value).Id, value.Ativo ? "SIM" : "NÃO", value.Descricao));
+ }
+ LastAccessId = ((DomainBase)value).Id;
+ LastAccessTela = (TipoTela)57;
+ StatusDeProspeccao selectedStatusProspeccao = SelectedStatusProspeccao;
+ if (((selectedStatusProspeccao != null) ? new long?(((DomainBase)selectedStatusProspeccao).Id) : null) != ((DomainBase)value).Id)
+ {
+ SelectedStatusProspeccao = ((IEnumerable<StatusDeProspeccao>)StatusProspeccaoFiltrados).FirstOrDefault((Func<StatusDeProspeccao, bool>)((StatusDeProspeccao x) => ((DomainBase)x).Id == ((DomainBase)value).Id));
+ }
+ }
+}