summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels.Ferramentas/RamoViewModel.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Ferramentas/RamoViewModel.cs')
-rw-r--r--Decompiler/Gestor.Application.ViewModels.Ferramentas/RamoViewModel.cs284
1 files changed, 284 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Ferramentas/RamoViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Ferramentas/RamoViewModel.cs
new file mode 100644
index 0000000..131f914
--- /dev/null
+++ b/Decompiler/Gestor.Application.ViewModels.Ferramentas/RamoViewModel.cs
@@ -0,0 +1,284 @@
+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 RamoViewModel : BaseSegurosViewModel
+{
+ private readonly RamoServico _servico;
+
+ private Ramo _selectedRamo = new Ramo();
+
+ private decimal _iof;
+
+ private ObservableCollection<Ramo> _ramosFiltrados = new ObservableCollection<Ramo>();
+
+ private bool _isExpanded;
+
+ private List<CoberturaPadrao> _coberturas = new List<CoberturaPadrao>();
+
+ private ObservableCollection<CoberturaPadrao> _coberturasFiltradas = new ObservableCollection<CoberturaPadrao>();
+
+ public Ramo CancelRamo;
+
+ public Ramo SelectedRamo
+ {
+ get
+ {
+ return _selectedRamo;
+ }
+ set
+ {
+ _selectedRamo = value;
+ WorkOnSelectedRamo(value);
+ VerificarEnables((value != null) ? new long?(((DomainBase)value).Id) : null);
+ OnPropertyChanged("SelectedRamo");
+ }
+ }
+
+ public decimal Iof
+ {
+ get
+ {
+ return _iof;
+ }
+ set
+ {
+ _iof = value;
+ OnPropertyChanged("Iof");
+ }
+ }
+
+ public List<Ramo> Ramos { get; set; }
+
+ public ObservableCollection<Ramo> RamosFiltrados
+ {
+ get
+ {
+ return _ramosFiltrados;
+ }
+ set
+ {
+ _ramosFiltrados = value;
+ IsExpanded = value != null && value.Count > 0;
+ OnPropertyChanged("RamosFiltrados");
+ }
+ }
+
+ public bool IsExpanded
+ {
+ get
+ {
+ return _isExpanded;
+ }
+ set
+ {
+ _isExpanded = value;
+ OnPropertyChanged("IsExpanded");
+ }
+ }
+
+ public List<CoberturaPadrao> Coberturas
+ {
+ get
+ {
+ return _coberturas;
+ }
+ set
+ {
+ _coberturas = value;
+ OnPropertyChanged("Coberturas");
+ }
+ }
+
+ public ObservableCollection<CoberturaPadrao> CoberturasFiltradas
+ {
+ get
+ {
+ return _coberturasFiltradas;
+ }
+ set
+ {
+ _coberturasFiltradas = value;
+ OnPropertyChanged("CoberturasFiltradas");
+ }
+ }
+
+ public RamoViewModel()
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ //IL_000b: Expected O, but got Unknown
+ _servico = new RamoServico();
+ base.EnableMenu = true;
+ Seleciona();
+ }
+
+ public async void Seleciona()
+ {
+ Loading(isLoading: true);
+ await PermissaoTela((TipoTela)12);
+ await SelecionaRamos();
+ Loading(isLoading: false);
+ }
+
+ private async Task SelecionaRamos(Ramo ramo = null)
+ {
+ Loading(isLoading: true);
+ await SelecionaCoberturas();
+ List<Ramo> list = await new BaseServico().BuscarRamosAsync();
+ Ramos = (from x in list
+ orderby x.Ativo descending, x.Nome
+ select x).ToList();
+ RamosFiltrados = new ObservableCollection<Ramo>(Ramos);
+ SelectedRamo = (Ramo)((ramo == null) ? ((object)RamosFiltrados.First()) : ((object)((IEnumerable<Ramo>)RamosFiltrados).FirstOrDefault((Func<Ramo, bool>)((Ramo x) => ((DomainBase)x).Id == ((DomainBase)ramo).Id))));
+ Recursos.Ramos = list;
+ Loading(isLoading: false);
+ }
+
+ private static async Task SelecionaCoberturas()
+ {
+ Recursos.Coberturas = await new BaseServico().BuscaCoberturas();
+ }
+
+ private void WorkOnSelectedRamo(Ramo 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_0170: Unknown result type (might be due to invalid IL or missing references)
+ CancelRamo = (Ramo)((value == null || ((DomainBase)value).Id == 0L) ? ((object)CancelRamo) : ((object)(Ramo)((DomainBase)value).Clone()));
+ if (value == null || ((DomainBase)value).Id == 0L || (LastAccessId == ((DomainBase)value).Id && (int)LastAccessTela == 12))
+ {
+ return;
+ }
+ Coberturas = (from x in Recursos.Coberturas
+ where x.IdRamo == ((DomainBase)value).Id
+ orderby x.Padrao descending, x.Descricao
+ select x).ToList();
+ CoberturasFiltradas = new ObservableCollection<CoberturaPadrao>(Coberturas);
+ Iof = value.Iof * 0.01m;
+ if (registrar)
+ {
+ RegistrarAcao("ACESSOU RAMO \"" + value.Nome + "\"", ((DomainBase)value).Id, (TipoTela)12, $"ID RAMO: {((DomainBase)value).Id}");
+ }
+ LastAccessId = ((DomainBase)value).Id;
+ LastAccessTela = (TipoTela)12;
+ Ramo selectedRamo = SelectedRamo;
+ if (((selectedRamo != null) ? new long?(((DomainBase)selectedRamo).Id) : null) != ((DomainBase)value).Id)
+ {
+ SelectedRamo = ((IEnumerable<Ramo>)RamosFiltrados).FirstOrDefault((Func<Ramo, bool>)((Ramo x) => ((DomainBase)x).Id == ((DomainBase)value).Id));
+ }
+ }
+
+ public async Task<List<KeyValuePair<string, string>>> Salvar()
+ {
+ SelectedRamo.Iof = Iof;
+ List<KeyValuePair<string, string>> list = SelectedRamo.Validate();
+ if (list.Count > 0)
+ {
+ return list;
+ }
+ Ramo selectedRamo = SelectedRamo;
+ selectedRamo.Iof *= 100m;
+ string acao = ((((DomainBase)SelectedRamo).Id == 0L) ? "INCLUIU" : "ALTEROU");
+ Ramo value = await _servico.Save(SelectedRamo, Coberturas);
+ if (!_servico.Sucesso)
+ {
+ return null;
+ }
+ RegistrarAcao(acao + " RAMO \"" + value.Nome + "\"", ((DomainBase)value).Id, (TipoTela)12, $"RAMO \"{value.Nome}\", ID: {((DomainBase)value).Id}");
+ if (Ramos.Any((Ramo x) => ((DomainBase)x).Id == ((DomainBase)value).Id))
+ {
+ DomainBase.Copy<Ramo, Ramo>(Ramos.First((Ramo x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value);
+ }
+ else
+ {
+ Ramos.Add(value);
+ }
+ if (RamosFiltrados.Any((Ramo x) => ((DomainBase)x).Id == ((DomainBase)value).Id))
+ {
+ DomainBase.Copy<Ramo, Ramo>(RamosFiltrados.First((Ramo x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value);
+ }
+ else
+ {
+ RamosFiltrados.Add(value);
+ }
+ RamosFiltrados = new ObservableCollection<Ramo>(RamosFiltrados);
+ Recursos.Ramos = Ramos;
+ await SelecionaCoberturas();
+ WorkOnSelectedRamo(value, registrar: false);
+ Alterar(alterar: false);
+ ToggleSnackBar("RAMO SALVO COM SUCESSO");
+ return null;
+ }
+
+ public void CancelarAlteracao()
+ {
+ if (CancelRamo != null && Ramos.Any((Ramo x) => ((DomainBase)x).Id == ((DomainBase)CancelRamo).Id))
+ {
+ DomainBase.Copy<Ramo, Ramo>(Ramos.First((Ramo x) => ((DomainBase)x).Id == ((DomainBase)CancelRamo).Id), CancelRamo);
+ if (RamosFiltrados.Count > 0 && RamosFiltrados.Any((Ramo x) => ((DomainBase)x).Id == ((DomainBase)CancelRamo).Id))
+ {
+ DomainBase.Copy<Ramo, Ramo>(RamosFiltrados.First((Ramo x) => ((DomainBase)x).Id == ((DomainBase)CancelRamo).Id), CancelRamo);
+ }
+ else
+ {
+ RamosFiltrados.Add(CancelRamo);
+ }
+ RamosFiltrados = new ObservableCollection<Ramo>(RamosFiltrados);
+ SelectedRamo = RamosFiltrados.First((Ramo x) => ((DomainBase)x).Id == ((DomainBase)CancelRamo).Id);
+ }
+ Alterar(alterar: false);
+ }
+
+ internal async Task<List<Ramo>> Filtrar(string value)
+ {
+ return await Task.Run(() => FiltrarRamo(value));
+ }
+
+ public List<Ramo> FiltrarRamo(string filter)
+ {
+ RamosFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<Ramo>(Ramos) : new ObservableCollection<Ramo>(from x in Ramos
+ where ValidationHelper.RemoveDiacritics(x.Nome.Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter))
+ orderby x.Ativo descending, x.Nome
+ select x));
+ return RamosFiltrados.ToList();
+ }
+
+ internal async Task<List<CoberturaPadrao>> FiltrarCobertura(string value)
+ {
+ return await Task.Run(() => FiltrarCoberturaRamo(value));
+ }
+
+ public List<CoberturaPadrao> FiltrarCoberturaRamo(string filter)
+ {
+ CoberturasFiltradas = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<CoberturaPadrao>(Coberturas) : new ObservableCollection<CoberturaPadrao>(Coberturas.Where((CoberturaPadrao x) => ValidationHelper.RemoveDiacritics(x.Descricao.Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter)))));
+ return CoberturasFiltradas.ToList();
+ }
+
+ public void SelecionaRamo(Ramo ramo)
+ {
+ SelectedRamo = ramo;
+ }
+
+ public async void Incluir(Ramo ramo)
+ {
+ ramo.Ativo = true;
+ await _servico.Insert(ramo);
+ if (_servico.Sucesso)
+ {
+ await SelecionaRamos(ramo);
+ }
+ }
+}