From 225aa1499e37faf9d38257caabbadc68d78b427e Mon Sep 17 00:00:00 2001 From: Lucas Faria Mendes Date: Mon, 30 Mar 2026 12:29:41 -0300 Subject: decompiler.com --- .../ProdutoViewModel.cs | 245 +++++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 Decompiler/Gestor.Application.ViewModels.Ferramentas/ProdutoViewModel.cs (limited to 'Decompiler/Gestor.Application.ViewModels.Ferramentas/ProdutoViewModel.cs') diff --git a/Decompiler/Gestor.Application.ViewModels.Ferramentas/ProdutoViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Ferramentas/ProdutoViewModel.cs new file mode 100644 index 0000000..efbb0dd --- /dev/null +++ b/Decompiler/Gestor.Application.ViewModels.Ferramentas/ProdutoViewModel.cs @@ -0,0 +1,245 @@ +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 ProdutoViewModel : BaseSegurosViewModel +{ + private readonly ProdutoServico _servico; + + private Produto _selectedProduto; + + public Produto CancelProduto; + + private ObservableCollection _produtosFiltrados = new ObservableCollection(); + + private bool _isExpanded; + + public Produto SelectedProduto + { + get + { + return _selectedProduto; + } + set + { + _selectedProduto = value; + WorkOnSelectedProduto(value); + VerificarEnables((value != null) ? new long?(((DomainBase)value).Id) : null); + OnPropertyChanged("SelectedProduto"); + } + } + + public ObservableCollection ProdutosFiltrados + { + get + { + return _produtosFiltrados; + } + set + { + _produtosFiltrados = value; + IsExpanded = value != null && value.Count > 0; + OnPropertyChanged("ProdutosFiltrados"); + } + } + + public bool IsExpanded + { + get + { + return _isExpanded; + } + set + { + _isExpanded = value; + OnPropertyChanged("IsExpanded"); + } + } + + public List Produtos { get; set; } + + public ProdutoViewModel() + { + _servico = new ProdutoServico(); + base.EnableMenu = true; + Seleciona(); + } + + private async void Seleciona() + { + Loading(isLoading: true); + await PermissaoTela((TipoTela)10); + await SelecionaProdutos(); + Loading(isLoading: false); + } + + private async Task SelecionaProdutos() + { + Loading(isLoading: true); + Produtos = (from x in await new BaseServico().BuscarProdutosAsync() + orderby x.Ativo descending, x.Nome + select x).ToList(); + ProdutosFiltrados = new ObservableCollection(Produtos); + SelectedProduto = ProdutosFiltrados.FirstOrDefault(); + Recursos.Produtos = Produtos.OrderBy((Produto x) => x.Nome).ToList(); + Loading(isLoading: false); + Loading(isLoading: true); + } + + public async Task>> Validate() + { + if (string.IsNullOrWhiteSpace(SelectedProduto.Nome)) + { + return new List>(); + } + List> errors = new List>(); + bool valida = true; + List list = await new BaseServico().BuscarProduto(SelectedProduto.Nome); + if (list.Count > 0) + { + list.ForEach(delegate(Produto x) + { + if (((DomainBase)x).Id != ((DomainBase)SelectedProduto).Id && x.Nome == SelectedProduto.Nome) + { + valida = false; + } + }); + } + if (!valida) + { + errors.Add(new KeyValuePair("Nome", "UM PRODUTO COM O MESMO NOME JÁ EXISTE.")); + } + return errors; + } + + public async Task>> Salvar() + { + List> errorMessages = SelectedProduto.Validate(); + List> list = errorMessages; + list.AddRange(await Validate()); + if (errorMessages.Count > 0) + { + return errorMessages; + } + string acao = ((((DomainBase)SelectedProduto).Id == 0L) ? "INCLUIU" : "ALTEROU"); + Produto value = await _servico.Save(SelectedProduto); + if (!_servico.Sucesso) + { + return null; + } + RegistrarAcao(acao + " PRODUTO \"" + value.Nome + "\"", ((DomainBase)value).Id, (TipoTela)10, $"PRODUTO \"{value.Nome}\", ID: {((DomainBase)value).Id}"); + if (Produtos.Any((Produto x) => ((DomainBase)x).Id == ((DomainBase)value).Id)) + { + DomainBase.Copy(Produtos.First((Produto x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value); + } + else + { + Produtos.Add(value); + } + if (ProdutosFiltrados.Any((Produto x) => ((DomainBase)x).Id == ((DomainBase)value).Id)) + { + DomainBase.Copy(ProdutosFiltrados.First((Produto x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value); + } + else + { + ProdutosFiltrados.Add(value); + } + ProdutosFiltrados = new ObservableCollection(ProdutosFiltrados); + Recursos.Produtos = Produtos.OrderBy((Produto x) => x.Nome).ToList(); + WorkOnSelectedProduto(value, registrar: false); + Alterar(alterar: false); + ToggleSnackBar("PRODUTO SALVO COM SUCESSO"); + return null; + } + + public void CancelarAlteracao() + { + if (CancelProduto != null && Produtos.Any((Produto x) => ((DomainBase)x).Id == ((DomainBase)CancelProduto).Id)) + { + DomainBase.Copy(Produtos.First((Produto x) => ((DomainBase)x).Id == ((DomainBase)CancelProduto).Id), CancelProduto); + if (ProdutosFiltrados.Count > 0 && ProdutosFiltrados.Any((Produto x) => ((DomainBase)x).Id == ((DomainBase)CancelProduto).Id)) + { + DomainBase.Copy(ProdutosFiltrados.First((Produto x) => ((DomainBase)x).Id == ((DomainBase)CancelProduto).Id), CancelProduto); + } + else + { + ProdutosFiltrados.Add(CancelProduto); + } + ProdutosFiltrados = new ObservableCollection(ProdutosFiltrados); + SelectedProduto = ProdutosFiltrados.First((Produto x) => ((DomainBase)x).Id == ((DomainBase)CancelProduto).Id); + } + else + { + Incluir(); + } + Alterar(alterar: false); + } + + private void WorkOnSelectedProduto(Produto 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_00d6: Unknown result type (might be due to invalid IL or missing references) + CancelProduto = (Produto)((value == null || ((DomainBase)value).Id == 0L) ? ((object)CancelProduto) : ((object)(Produto)((DomainBase)value).Clone())); + if (value == null || ((DomainBase)value).Id == 0L || (LastAccessId == ((DomainBase)value).Id && (int)LastAccessTela == 10)) + { + return; + } + if (registrar) + { + RegistrarAcao("ACESSOU PRODUTO \"" + value.Nome + "\"", ((DomainBase)value).Id, (TipoTela)10, $"ID PRODUTO: {((DomainBase)value).Id}"); + } + LastAccessId = ((DomainBase)value).Id; + LastAccessTela = (TipoTela)10; + Produto selectedProduto = SelectedProduto; + if (((selectedProduto != null) ? new long?(((DomainBase)selectedProduto).Id) : null) != ((DomainBase)value).Id) + { + SelectedProduto = ((IEnumerable)ProdutosFiltrados).FirstOrDefault((Func)((Produto x) => ((DomainBase)x).Id == ((DomainBase)value).Id)); + } + } + + 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_0012: Expected O, but got Unknown + SelectedProduto = new Produto + { + Ativo = true + }; + Alterar(alterar: true); + } + + internal async Task> Filtrar(string value) + { + return await Task.Run(() => FiltrarProduto(value)); + } + + public List FiltrarProduto(string filter) + { + ProdutosFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection(Produtos) : new ObservableCollection(from x in Produtos + where ValidationHelper.RemoveDiacritics(x.Nome.Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter)) + orderby x.Ativo descending, x.Nome + select x)); + SelectedProduto = ProdutosFiltrados.FirstOrDefault(); + return ProdutosFiltrados.ToList(); + } + + public void SelecionaProduto(Produto produto) + { + SelectedProduto = produto; + } +} -- cgit v1.2.3