From 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 Mon Sep 17 00:00:00 2001 From: Lucas Faria Mendes Date: Mon, 30 Mar 2026 10:38:18 -0300 Subject: chore: location --- .../ViewModels/Ferramentas/MalaDiretaViewModel.cs | 821 +++++++++++++++++++++ 1 file changed, 821 insertions(+) create mode 100644 Codemerx/Gestor.Application/ViewModels/Ferramentas/MalaDiretaViewModel.cs (limited to 'Codemerx/Gestor.Application/ViewModels/Ferramentas/MalaDiretaViewModel.cs') diff --git a/Codemerx/Gestor.Application/ViewModels/Ferramentas/MalaDiretaViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Ferramentas/MalaDiretaViewModel.cs new file mode 100644 index 0000000..0009fb4 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Ferramentas/MalaDiretaViewModel.cs @@ -0,0 +1,821 @@ +using Gestor.Application.Helpers; +using Gestor.Application.Servicos; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros; +using Gestor.Application.ViewModels.Generic; +using Gestor.Common.Validation; +using Gestor.Model.Common; +using Gestor.Model.Domain.Common; +using Gestor.Model.Domain.Ferramentas; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.MalaDireta; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using System.Windows; + +namespace Gestor.Application.ViewModels.Ferramentas +{ + public class MalaDiretaViewModel : BaseSegurosViewModel + { + private readonly MalaDiretaServico _servico; + + private readonly FiltroArquivoDigital _filtro; + + private ObservableCollection _malaDireta = new ObservableCollection(); + + private ObservableCollection _variaveis = new ObservableCollection(); + + private bool _enableCredencial; + + private ObservableCollection _modelos = new ObservableCollection(); + + private ComboModelo _selectedModelo = new ComboModelo(); + + private ComboVariavel _selectedVariavel; + + private string _assunto; + + private string _corpo; + + private ObservableCollection _credenciais = new ObservableCollection(); + + private Credencial _selectedCredencial = new Credencial(); + + private ObservableCollection _arquivos = new ObservableCollection(); + + private ObservableCollection _arquivosAnexados = new ObservableCollection(); + + private Gestor.Model.Domain.Common.ArquivoDigital _selectedAnexado = new Gestor.Model.Domain.Common.ArquivoDigital(); + + private Visibility _visibilitySalvarAnexos = Visibility.Hidden; + + private bool _enviarOriginal; + + private bool _salvarArquivoDigital; + + private bool _assinatura; + + public bool _confirmarLeitura; + + public ObservableCollection Arquivos + { + get + { + return this._arquivos; + } + set + { + this._arquivos = value; + base.OnPropertyChanged("Arquivos"); + } + } + + public ObservableCollection ArquivosAnexados + { + get + { + return this._arquivosAnexados; + } + set + { + this._arquivosAnexados = value; + base.OnPropertyChanged("ArquivosAnexados"); + } + } + + public bool Assinatura + { + get + { + return this._assinatura; + } + set + { + this._assinatura = value; + base.OnPropertyChanged("Assinatura"); + } + } + + public string Assunto + { + get + { + return this._assunto; + } + set + { + this._assunto = value; + base.OnPropertyChanged("Assunto"); + } + } + + public bool ConfirmarLeitura + { + get + { + return this._confirmarLeitura; + } + set + { + this._confirmarLeitura = value; + } + } + + public string Corpo + { + get + { + return this._corpo; + } + set + { + this._corpo = value; + base.OnPropertyChanged("Corpo"); + } + } + + public ObservableCollection Credenciais + { + get + { + return this._credenciais; + } + set + { + this._credenciais = value; + base.OnPropertyChanged("Credenciais"); + } + } + + public bool EnableCredencial + { + get + { + return this._enableCredencial; + } + set + { + this._enableCredencial = value; + base.OnPropertyChanged("EnableCredencial"); + } + } + + public bool Enviado + { + get; + set; + } + + public bool EnviarOriginal + { + get + { + return this._enviarOriginal; + } + set + { + this._enviarOriginal = value; + base.OnPropertyChanged("EnviarOriginal"); + } + } + + public ObservableCollection MalaDireta + { + get + { + return this._malaDireta; + } + set + { + this._malaDireta = value; + base.OnPropertyChanged("MalaDireta"); + } + } + + public ObservableCollection Modelos + { + get + { + return this._modelos; + } + set + { + Func func = null; + List list = ( + from variavel in (VariaveisMalaDireta[])Enum.GetValues(typeof(VariaveisMalaDireta)) + select ValidationHelper.GetEntity(variavel)).ToList(); + List strs = ( + from x in this.Variaveis + where !x.Indisponivel + select x into v + select ValidationHelper.GetEntity(v.VariaveisMalaDireta)).ToList(); + List comboModelos = new List(); + foreach (ComboModelo comboModelo in value) + { + IEnumerable strs1 = list.Where(new Func(comboModelo.ModeloMalaDireta.get_Corpo().Contains)); + Func func1 = func; + if (func1 == null) + { + Func func2 = (string s) => strs.Contains(s); + Func func3 = func2; + func = func2; + func1 = func3; + } + if (!strs1.All(func1)) + { + comboModelos.Add(new ComboModelo() + { + ModeloMalaDireta = comboModelo.ModeloMalaDireta, + Indisponivel = true + }); + } + else + { + comboModelos.Add(comboModelo); + } + } + this._modelos = new ObservableCollection( + from x in comboModelos + orderby x.Indisponivel, x.ModeloMalaDireta.get_Assunto() + select x); + base.OnPropertyChanged("Modelos"); + } + } + + public bool SalvarArquivoDigital + { + get + { + return this._salvarArquivoDigital; + } + set + { + this._salvarArquivoDigital = value; + base.OnPropertyChanged("SalvarArquivoDigital"); + } + } + + public Gestor.Model.Domain.Common.ArquivoDigital SelectedAnexado + { + get + { + return this._selectedAnexado; + } + set + { + this._selectedAnexado = value; + base.OnPropertyChanged("SelectedAnexado"); + } + } + + public Credencial SelectedCredencial + { + get + { + return this._selectedCredencial; + } + set + { + this._selectedCredencial = value; + base.OnPropertyChanged("SelectedCredencial"); + } + } + + public ComboModelo SelectedModelo + { + get + { + return this._selectedModelo; + } + set + { + long? nullable; + ModeloMalaDireta modeloMalaDireta; + this._selectedModelo = value; + if (value != null) + { + nullable = new long?(value.ModeloMalaDireta.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + if (value != null) + { + modeloMalaDireta = value.ModeloMalaDireta; + } + else + { + modeloMalaDireta = null; + } + this.WorkOnSelectedModelo(modeloMalaDireta); + base.OnPropertyChanged("SelectedModelo"); + } + } + + public ComboVariavel SelectedVariavel + { + get + { + return this._selectedVariavel; + } + set + { + this._selectedVariavel = value; + base.OnPropertyChanged("SelectedVariavel"); + } + } + + public ObservableCollection Variaveis + { + get + { + return this._variaveis; + } + set + { + this._variaveis = new ObservableCollection( + from x in value + orderby x.Indisponivel, x.VariaveisMalaDireta.ToString() + select x); + base.OnPropertyChanged("Variaveis"); + } + } + + public Visibility VisibilitySalvarAnexos + { + get + { + return this._visibilitySalvarAnexos; + } + set + { + this._visibilitySalvarAnexos = value; + base.OnPropertyChanged("VisibilitySalvarAnexos"); + } + } + + public MalaDiretaViewModel(FiltroArquivoDigital filtro = null) + { + this._servico = new MalaDiretaServico(); + this._filtro = filtro; + this.BuscarCredenciais(); + } + + public async void Anexar() + { + ObservableCollection arquivos = this.Arquivos; + List list = arquivos.Select((IndiceArquivoDigital x) => { + Gestor.Model.Domain.Common.ArquivoDigital arquivoDigital = new Gestor.Model.Domain.Common.ArquivoDigital(); + arquivoDigital.set_Descricao(x.get_Descricao()); + arquivoDigital.set_Extensao(x.get_Extensao()); + return arquivoDigital; + }).ToList(); + List arquivoDigitals = await base.AddAttachments(this.ArquivosAnexados.ToList(), list); + if (arquivoDigitals != null) + { + arquivoDigitals.AddRange(this.ArquivosAnexados); + this.ArquivosAnexados = new ObservableCollection(arquivoDigitals); + } + } + + private async void BuscarCredenciais() + { + Credencial credencial; + await base.PermissaoTela(39); + base.VerificarEnables(null); + List credencials = await (new BaseServico()).BuscarCredenciais(); + MalaDiretaViewModel observableCollection = this; + List credencials1 = credencials; + observableCollection.Credenciais = new ObservableCollection( + from x in credencials1 + orderby x.get_Descricao() + select x); + this.EnableCredencial = !base.Restricao(110); + MalaDiretaViewModel malaDiretaViewModel = this; + if (this.EnableCredencial) + { + ObservableCollection credenciais = this.Credenciais; + credencial = credenciais.FirstOrDefault((Credencial x) => x.get_IdUsuario() == Recursos.Usuario.get_Id()); + if (credencial == null) + { + credencial = this.Credenciais.FirstOrDefault(); + } + } + else + { + ObservableCollection credenciais1 = this.Credenciais; + credencial = credenciais1.FirstOrDefault((Credencial x) => x.get_IdUsuario() == Recursos.Usuario.get_Id()); + } + malaDiretaViewModel.SelectedCredencial = credencial; + } + + public void CancelarAlteracao() + { + base.Alterar(false); + this.SelectedModelo = null; + } + + public async Task CarregarEmails(List maladireta, string assunto = null, string corpo = null) + { + Visibility visibility; + ComboVariavel comboVariavel; + ComboVariavel comboVariavel1; + ComboVariavel comboVariavel2; + ComboVariavel comboVariavel3; + ComboVariavel comboVariavel4; + ComboVariavel comboVariavel5; + ComboVariavel comboVariavel6; + ComboVariavel comboVariavel7; + ClienteServico clienteServico = new ClienteServico(); + List malaDiretas = maladireta; + IEnumerable malaDiretas1 = + from x in malaDiretas + where x.get_Cliente() != null + select x; + List nums = ( + from x in malaDiretas1 + select x.get_Cliente().get_Id()).ToList(); + MalaDiretaViewModel malaDiretaViewModel = this; + visibility = (nums.Count > 1 ? Visibility.Hidden : Visibility.Visible); + malaDiretaViewModel.VisibilitySalvarAnexos = visibility; + List clienteEmails = await clienteServico.BuscarEmailsPorCliente(nums); + List malaDiretas2 = new List(); + maladireta.ForEach((Gestor.Model.Domain.MalaDireta.MalaDireta x) => { + bool flag; + if (x.get_Cliente() != null) + { + MalaDiretaViewModel u003cu003e4_this = this; + if (this.Assinatura) + { + flag = true; + } + else if (x.get_ArquivoDigital() == null) + { + flag = false; + } + else + { + List arquivoDigital = x.get_ArquivoDigital(); + Func u003cu003e9_8417 = MalaDiretaViewModel.u003cu003ec.u003cu003e9__84_17; + if (u003cu003e9_8417 == null) + { + u003cu003e9_8417 = (IndiceArquivoDigital a) => { + if (string.IsNullOrEmpty(a.get_UrlAssinatura())) + { + return false; + } + return !a.get_Assinado(); + }; + MalaDiretaViewModel.u003cu003ec.u003cu003e9__84_17 = u003cu003e9_8417; + } + flag = arquivoDigital.Any(u003cu003e9_8417); + } + u003cu003e4_this.Assinatura = flag; + List list = ( + from e in clienteEmails + where e.get_Cliente().get_Id() == this.x.get_Cliente().get_Id() + select e).ToList(); + int num = 0; + Func u003cu003e9_8419 = MalaDiretaViewModel.u003cu003ec.u003cu003e9__84_19; + if (u003cu003e9_8419 == null) + { + u003cu003e9_8419 = (ClienteEmail o) => o.get_Ordem().GetValueOrDefault(); + MalaDiretaViewModel.u003cu003ec.u003cu003e9__84_19 = u003cu003e9_8419; + } + list.OrderBy(u003cu003e9_8419).ToList().ForEach((ClienteEmail e) => { + x.set_Selecionado((!string.IsNullOrWhiteSpace(x.get_Email()) ? false : x.get_Cliente().get_MalaDireta().GetValueOrDefault(true))); + if (num <= 0) + { + x.set_Email(e.get_Email()); + x.set_Ordem(e.get_Ordem().GetValueOrDefault()); + Gestor.Model.Domain.MalaDireta.MalaDireta malaDiretum = new Gestor.Model.Domain.MalaDireta.MalaDireta(); + DomainBase.Copy(malaDiretum, x); + malaDiretas2.Add(malaDiretum); + } + else + { + Gestor.Model.Domain.MalaDireta.MalaDireta malaDiretum1 = new Gestor.Model.Domain.MalaDireta.MalaDireta(); + DomainBase.Copy(malaDiretum1, x); + malaDiretum1.set_Email(e.get_Email()); + malaDiretum1.set_Selecionado(false); + malaDiretas2.Add(malaDiretum1); + } + num++; + }); + } + if (x.get_Prospeccao() == null) + { + return; + } + Gestor.Model.Domain.MalaDireta.MalaDireta malaDiretum2 = new Gestor.Model.Domain.MalaDireta.MalaDireta(); + Gestor.Model.Domain.MalaDireta.MalaDireta malaDiretum3 = x; + Cliente cliente = x.get_Cliente(); + if (cliente == null) + { + cliente = new Cliente(); + cliente.set_Nome(x.get_Prospeccao().get_Nome()); + cliente.set_Documento(x.get_Prospeccao().get_Documento()); + } + malaDiretum3.set_Cliente(cliente); + if (string.IsNullOrEmpty(x.get_Cliente().get_Documento())) + { + x.get_Cliente().set_Documento(x.get_Prospeccao().get_Documento()); + } + x.set_Email(x.get_Prospeccao().get_Email()); + x.set_Ordem(0); + x.set_Selecionado(true); + DomainBase.Copy(malaDiretum2, x); + malaDiretas2.Add(malaDiretum2); + }); + MalaDiretaViewModel observableCollection = this; + List malaDiretas3 = malaDiretas2; + IOrderedEnumerable nome = + from x in malaDiretas3 + orderby x.get_Cliente().get_Nome() + select x; + observableCollection.MalaDireta = new ObservableCollection(nome.ThenBy((Gestor.Model.Domain.MalaDireta.MalaDireta x) => x.get_Ordem())); + this.Variaveis.Add(new ComboVariavel(18, false)); + this.Variaveis.Add(new ComboVariavel(0, false)); + this.Variaveis.Add(new ComboVariavel(1, false)); + this.Variaveis.Add(new ComboVariavel(2, false)); + ObservableCollection variaveis = this.Variaveis; + ObservableCollection malaDireta = this.MalaDireta; + comboVariavel = (malaDireta.Any((Gestor.Model.Domain.MalaDireta.MalaDireta x) => x.get_Cliente().get_VencimentoHabilitacao().HasValue) ? new ComboVariavel(16, false) : new ComboVariavel(16, true)); + variaveis.Add(comboVariavel); + ObservableCollection malaDireta1 = this.MalaDireta; + if (!malaDireta1.Any((Gestor.Model.Domain.MalaDireta.MalaDireta x) => x.get_Cliente().get_Nascimento().HasValue)) + { + this.Variaveis.Add(new ComboVariavel(14, true)); + this.Variaveis.Add(new ComboVariavel(15, true)); + } + else + { + this.Variaveis.Add(new ComboVariavel(14, false)); + this.Variaveis.Add(new ComboVariavel(15, false)); + } + ObservableCollection variaveis1 = this.Variaveis; + ObservableCollection observableCollection1 = this.MalaDireta; + comboVariavel1 = (observableCollection1.Any((Gestor.Model.Domain.MalaDireta.MalaDireta x) => { + if (x.get_ArquivoDigital() == null) + { + return false; + } + return x.get_ArquivoDigital().Any((IndiceArquivoDigital z) => !string.IsNullOrWhiteSpace(z.get_UrlAssinatura())); + }) ? new ComboVariavel(17, false) : new ComboVariavel(17, true)); + variaveis1.Add(comboVariavel1); + ObservableCollection malaDireta2 = this.MalaDireta; + if (!malaDireta2.All((Gestor.Model.Domain.MalaDireta.MalaDireta x) => x.get_Apolice() != null)) + { + this.Variaveis.Add(new ComboVariavel(19, true)); + this.Variaveis.Add(new ComboVariavel(3, true)); + this.Variaveis.Add(new ComboVariavel(4, true)); + this.Variaveis.Add(new ComboVariavel(7, true)); + this.Variaveis.Add(new ComboVariavel(8, true)); + this.Variaveis.Add(new ComboVariavel(5, true)); + this.Variaveis.Add(new ComboVariavel(6, true)); + } + else + { + this.Variaveis.Add(new ComboVariavel(3, false)); + this.Variaveis.Add(new ComboVariavel(4, false)); + this.Variaveis.Add(new ComboVariavel(7, false)); + ObservableCollection variaveis2 = this.Variaveis; + ObservableCollection observableCollection2 = this.MalaDireta; + comboVariavel7 = (observableCollection2.Any((Gestor.Model.Domain.MalaDireta.MalaDireta x) => x.get_Apolice().get_Vigencia2().HasValue) ? new ComboVariavel(8, false) : new ComboVariavel(8, true)); + variaveis2.Add(comboVariavel7); + this.Variaveis.Add(new ComboVariavel(19, false)); + this.Variaveis.Add(new ComboVariavel(23, false)); + this.Variaveis.Add(new ComboVariavel(24, false)); + ObservableCollection malaDireta3 = this.MalaDireta; + if (!malaDireta3.Any((Gestor.Model.Domain.MalaDireta.MalaDireta x) => x.get_Apolice().get_Controle() != null)) + { + this.Variaveis.Add(new ComboVariavel(5, true)); + this.Variaveis.Add(new ComboVariavel(6, true)); + } + else + { + this.Variaveis.Add(new ComboVariavel(5, false)); + this.Variaveis.Add(new ComboVariavel(6, false)); + } + } + ObservableCollection observableCollection3 = this.MalaDireta; + if (!observableCollection3.All((Gestor.Model.Domain.MalaDireta.MalaDireta x) => x.get_Parcela() != null)) + { + this.Variaveis.Add(new ComboVariavel(9, true)); + this.Variaveis.Add(new ComboVariavel(10, true)); + this.Variaveis.Add(new ComboVariavel(13, true)); + } + else + { + this.Variaveis.Add(new ComboVariavel(9, false)); + this.Variaveis.Add(new ComboVariavel(10, false)); + this.Variaveis.Add(new ComboVariavel(13, false)); + } + ObservableCollection variaveis3 = this.Variaveis; + ObservableCollection malaDireta4 = this.MalaDireta; + comboVariavel2 = (malaDireta4.All((Gestor.Model.Domain.MalaDireta.MalaDireta x) => x.get_Item() != null) ? new ComboVariavel(11, false) : new ComboVariavel(11, true)); + variaveis3.Add(comboVariavel2); + ObservableCollection variaveis4 = this.Variaveis; + ObservableCollection observableCollection4 = this.MalaDireta; + comboVariavel3 = (observableCollection4.All((Gestor.Model.Domain.MalaDireta.MalaDireta x) => x.get_Sinistro() != null) ? new ComboVariavel(12, false) : new ComboVariavel(12, true)); + variaveis4.Add(comboVariavel3); + this.Variaveis = new ObservableCollection(this.Variaveis); + ObservableCollection variaveis5 = this.Variaveis; + ObservableCollection malaDireta5 = this.MalaDireta; + comboVariavel4 = (malaDireta5.Any((Gestor.Model.Domain.MalaDireta.MalaDireta x) => { + Documento apolice = x.get_Apolice(); + if (apolice == null) + { + return false; + } + apolice.get_PremioLiquido(); + return true; + }) ? new ComboVariavel(20, false) : new ComboVariavel(20, true)); + variaveis5.Add(comboVariavel4); + ObservableCollection observableCollection5 = this.Variaveis; + ObservableCollection malaDireta6 = this.MalaDireta; + comboVariavel5 = (malaDireta6.Any((Gestor.Model.Domain.MalaDireta.MalaDireta x) => { + Documento apolice = x.get_Apolice(); + if (apolice == null) + { + return false; + } + apolice.get_PremioTotal(); + return true; + }) ? new ComboVariavel(21, false) : new ComboVariavel(21, true)); + observableCollection5.Add(comboVariavel5); + ObservableCollection variaveis6 = this.Variaveis; + ObservableCollection observableCollection6 = this.MalaDireta; + comboVariavel6 = (observableCollection6.Any((Gestor.Model.Domain.MalaDireta.MalaDireta x) => { + Documento apolice = x.get_Apolice(); + if (apolice == null) + { + return false; + } + return apolice.get_FormaPagamento().HasValue; + }) ? new ComboVariavel(22, false) : new ComboVariavel(22, true)); + variaveis6.Add(comboVariavel6); + await this.CarregarModelos(null); + if (assunto != null) + { + this.Assunto = assunto; + } + if (corpo != null) + { + this.Corpo = corpo; + } + } + + private async Task CarregarModelos(ModeloMalaDireta modelo = null) + { + List modeloMalaDiretas = await this._servico.BuscarModelos(); + List comboModelos = new List(); + foreach (ModeloMalaDireta modeloMalaDiretum in modeloMalaDiretas) + { + comboModelos.Add(new ComboModelo() + { + ModeloMalaDireta = modeloMalaDiretum + }); + } + this.Modelos = new ObservableCollection(comboModelos); + if (modelo != null) + { + this.SelectedModelo = this.Modelos.FirstOrDefault((ComboModelo x) => x.ModeloMalaDireta.get_Id() == modelo.get_Id()); + } + } + + public void Delete(Gestor.Model.Domain.Common.ArquivoDigital arquivo) + { + if (this.SelectedAnexado == null) + { + return; + } + Gestor.Model.Domain.Common.ArquivoDigital arquivoDigital = this.ArquivosAnexados.First((Gestor.Model.Domain.Common.ArquivoDigital x) => x.get_Descricao() == arquivo.get_Descricao()); + this.ArquivosAnexados.Remove(arquivoDigital); + this.ArquivosAnexados = new ObservableCollection(this.ArquivosAnexados); + } + + public async Task Enviar() + { + bool flag; + if (string.IsNullOrWhiteSpace(this.Corpo) || string.IsNullOrWhiteSpace(this.Assunto)) + { + await base.ShowMessage("NECESSÁRIO CONTER ASSUNTO E MENSAGEM PARA PROSSEGUIR.", "OK", "", false); + flag = false; + } + else if (this.SelectedCredencial == null || this.SelectedCredencial.get_Id() == 0) + { + await base.ShowMessage("NECESSÁRIO SELECIONAR O E-MAIL DE ENVIO PARA PROSSEGUIR.", "OK", "", false); + flag = false; + } + else + { + ObservableCollection malaDireta = this.MalaDireta; + List list = ( + from x in malaDireta + where x.get_Selecionado() + select x).ToList(); + if (list.Count != 0) + { + await base.ShowEnviarEmailsDialog(list, this.Assinatura, this.EnviarOriginal, this.ArquivosAnexados.ToList(), this.Assunto, this.Corpo, this.SelectedCredencial, this._filtro, this.SalvarArquivoDigital, this.ConfirmarLeitura); + this.Enviado = true; + flag = true; + } + else + { + await base.ShowMessage("NECESSÁRIO SELECIONAR AO MENOS UM DESTINATÁRIO PARA PROSSEGUIR.", "OK", "", false); + flag = false; + } + } + return flag; + } + + public async void Excluir() + { + if (this.SelectedModelo != null && this.SelectedModelo.ModeloMalaDireta.get_Id() != 0) + { + if (await base.ShowMessage("DESEJA REALMENTE EXCLUIR O MODELO?", "SIM", "NÃO", false)) + { + if (await this._servico.Delete(this.SelectedModelo.ModeloMalaDireta)) + { + base.RegistrarAcao(string.Concat("EXCLUIU MODELO ", this.SelectedModelo.ModeloMalaDireta.get_Assunto()), this.SelectedModelo.ModeloMalaDireta.get_Id(), new TipoTela?(39), null); + await this.CarregarModelos(null); + this.SelectedModelo = null; + base.ToggleSnackBar("MODELO EXCLUÍDO COM SUCESSO", true); + } + } + } + } + + public void Incluir() + { + this.SelectedModelo = new ComboModelo(); + this.Corpo = string.Empty; + base.Alterar(true); + } + + public async Task>> Salvar() + { + List> keyValuePairs; + if (this.SelectedModelo != null) + { + this.SelectedModelo.ModeloMalaDireta.set_Assunto(this.Assunto); + this.SelectedModelo.ModeloMalaDireta.set_Corpo(this.Corpo); + } + else + { + ComboModelo comboModelo = new ComboModelo(); + ModeloMalaDireta modeloMalaDiretum = new ModeloMalaDireta(); + modeloMalaDiretum.set_Assunto(this.Assunto); + modeloMalaDiretum.set_Corpo(this.Corpo); + comboModelo.ModeloMalaDireta = modeloMalaDiretum; + this.SelectedModelo = comboModelo; + } + List> keyValuePairs1 = this.SelectedModelo.ModeloMalaDireta.Validate(); + if (keyValuePairs1.Count <= 0) + { + ModeloMalaDireta modeloMalaDiretum1 = await this._servico.Save(this.SelectedModelo.ModeloMalaDireta); + if (this._servico.Sucesso) + { + base.Alterar(false); + await this.CarregarModelos(modeloMalaDiretum1); + base.ToggleSnackBar("MODELO SALVO COM SUCESSO", true); + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + return keyValuePairs; + } + + public void Selecionar() + { + this.MalaDireta.ToList().ForEach((Gestor.Model.Domain.MalaDireta.MalaDireta x) => x.set_Selecionado(!x.get_Selecionado())); + this.MalaDireta = new ObservableCollection(this.MalaDireta); + } + + private void WorkOnSelectedModelo(ModeloMalaDireta value) + { + if (value == null) + { + return; + } + this.Corpo = this.SelectedModelo.ModeloMalaDireta.get_Corpo(); + this.Assunto = this.SelectedModelo.ModeloMalaDireta.get_Assunto(); + } + } +} \ No newline at end of file -- cgit v1.2.3