diff options
| author | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 15:29:41 +0000 |
|---|---|---|
| committer | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 15:29:41 +0000 |
| commit | 225aa1499e37faf9d38257caabbadc68d78b427e (patch) | |
| tree | 102bb7a40c58595348ae9d3c7076201759fe0720 /Decompiler/Gestor.Application.ViewModels.Ferramentas/RamoViewModel.cs | |
| parent | 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff) | |
| download | gestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip | |
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Ferramentas/RamoViewModel.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.ViewModels.Ferramentas/RamoViewModel.cs | 284 |
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); + } + } +} |