using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Threading.Tasks; using Assinador.Infrastructure.Helpers; using Gestor.Application.Helpers; using Gestor.Application.Servicos.Ferramentas; using Gestor.Application.Servicos.Generic; using Gestor.Application.ViewModels.Generic; using Gestor.Model.Common; using Gestor.Model.Domain.Generic; using Gestor.Model.Domain.Seguros; namespace Gestor.Application.ViewModels.Drawer; public class MetaVendedorViewModel : BaseSegurosViewModel { private readonly MetaVendedorServico _servico; private readonly Vendedor _selectedVendedor; private MetaVendedor _selectedMetaVendedor = new MetaVendedor(); private ObservableCollection _metasVendedor = new ObservableCollection(); private bool _carregando; public MetaVendedor CancelMetaVendedor; public MetaVendedor SelectedMetaVendedor { get { return _selectedMetaVendedor; } set { _selectedMetaVendedor = value; CancelMetaVendedor = ((value != null && ((DomainBase)value).Id > 0) ? value : CancelMetaVendedor); VerificarEnables((value != null) ? new long?(((DomainBase)value).Id) : null); OnPropertyChanged("SelectedMetaVendedor"); } } public ObservableCollection MetasVendedor { get { return _metasVendedor; } set { _metasVendedor = value; OnPropertyChanged("MetasVendedor"); } } public bool Carregando { get { return _carregando; } set { _carregando = value; base.IsEnabled = !value; base.EnableMenu = !value; OnPropertyChanged("Carregando"); } } public MetaVendedorViewModel(Vendedor vendedor) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown _servico = new MetaVendedorServico(); Seleciona(vendedor); _selectedVendedor = vendedor; } private async void Seleciona(Vendedor vendedor) { Loading(isLoading: true); await PermissaoTela((TipoTela)30); await SelecionaMetasVendedor(vendedor); Loading(isLoading: false); } public void SelecionaMetaVendedor(MetaVendedor metaVendedor) { SelectedMetaVendedor = metaVendedor; } private async Task SelecionaMetasVendedor(Vendedor vendedor) { Carregando = true; await CarregarMetas(vendedor); if (MetasVendedor.Count > 0) { SelecionaMetaVendedor(MetasVendedor.First()); } else { SelectedMetaVendedor = new MetaVendedor(); Alterar(alterar: false); base.EnableMenu = false; } Carregando = false; } public void Incluir() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown DateTime date = Funcoes.GetNetworkTime().Date; SelectedMetaVendedor = new MetaVendedor { Ano = date.Year, Mes = (Mes)date.Month }; Alterar(alterar: true); } public async Task>> Salvar() { SelectedMetaVendedor.Vendedor = _selectedVendedor; _servico.Sucesso = true; string acao = ((((DomainBase)SelectedMetaVendedor).Id == 0L) ? "INCLUIU" : "ALTEROU"); MetaVendedor value = await _servico.Save(SelectedMetaVendedor); if (!_servico.Sucesso) { return null; } RegistrarAcao(acao + " META DO VENDEDOR \"" + value.Vendedor.Nome + "\"", ((DomainBase)value).Id, (TipoTela)30, $"ID: {((DomainBase)value).Id}\nVALOR: {value.Valor:C}\nMÊS: {Functions.GetDescription((Enum)(object)value.Mes)}\nANO: {value.Ano}"); if (MetasVendedor.Any((MetaVendedor x) => ((DomainBase)x).Id == ((DomainBase)value).Id)) { DomainBase.Copy(MetasVendedor.First((MetaVendedor x) => ((DomainBase)x).Id == ((DomainBase)value).Id), value); } else { MetasVendedor.Add(value); } MetasVendedor = new ObservableCollection(MetasVendedor); SelectedMetaVendedor = MetasVendedor.First((MetaVendedor x) => ((DomainBase)x).Id == ((DomainBase)value).Id); Alterar(alterar: false); return null; } public async Task Excluir() { if (SelectedMetaVendedor == null || ((DomainBase)SelectedMetaVendedor).Id == 0L) { return false; } if (!(await ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO"))) { return false; } Carregando = true; string log = "EXCLUIU META DO VENDEDOR \"" + _selectedVendedor.Nome + "\""; long id = ((DomainBase)SelectedMetaVendedor).Id; string descricao = $"ID: {((DomainBase)SelectedMetaVendedor).Id}\nVALOR: {SelectedMetaVendedor.Valor:C}\nMÊS: {Functions.GetDescription((Enum)(object)SelectedMetaVendedor.Mes)}\nANO: {SelectedMetaVendedor.Ano}"; if (!(await _servico.Delete(SelectedMetaVendedor))) { Carregando = false; Alterar(alterar: false); return false; } RegistrarAcao(log, id, (TipoTela)30, descricao); await CarregarMetas(_selectedVendedor); if (MetasVendedor.Count > 0) { SelectedMetaVendedor = MetasVendedor.First(); } else { SelectedMetaVendedor = new MetaVendedor(); Alterar(alterar: false); base.EnableMenu = false; base.EnableAlterar = false; base.EnableExcluir = false; } Carregando = false; return true; } public void CancelarAlteracao() { Carregando = true; if (CancelMetaVendedor != null && MetasVendedor.Any((MetaVendedor x) => ((DomainBase)x).Id == ((DomainBase)CancelMetaVendedor).Id)) { DomainBase.Copy(MetasVendedor.First((MetaVendedor x) => ((DomainBase)x).Id == ((DomainBase)CancelMetaVendedor).Id), CancelMetaVendedor); SelectedMetaVendedor = MetasVendedor.First((MetaVendedor x) => ((DomainBase)x).Id == ((DomainBase)CancelMetaVendedor).Id); } Alterar(alterar: false); Carregando = false; } private async Task CarregarMetas(Vendedor vendedor) { MetasVendedor = new ObservableCollection((from x in await new BaseServico().BuscarMetaVendedorAsync(vendedor) orderby x.Mes, x.Valor select x).ToList()); } }