diff options
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusProspeccaoViewModel.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.ViewModels.Ferramentas/StatusProspeccaoViewModel.cs | 263 |
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)); + } + } +} |