summaryrefslogtreecommitdiff
path: root/Codemerx/Gestor.Application/ViewModels/Drawer/ArquivoDigitalViewModel.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Codemerx/Gestor.Application/ViewModels/Drawer/ArquivoDigitalViewModel.cs')
-rw-r--r--Codemerx/Gestor.Application/ViewModels/Drawer/ArquivoDigitalViewModel.cs1414
1 files changed, 1414 insertions, 0 deletions
diff --git a/Codemerx/Gestor.Application/ViewModels/Drawer/ArquivoDigitalViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Drawer/ArquivoDigitalViewModel.cs
new file mode 100644
index 0000000..6963a1e
--- /dev/null
+++ b/Codemerx/Gestor.Application/ViewModels/Drawer/ArquivoDigitalViewModel.cs
@@ -0,0 +1,1414 @@
+using Assinador.Model.Domain;
+using Assinador.Model.Generic;
+using CsQuery.ExtensionMethods.Internal;
+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.Application.Views.Ferramentas;
+using Gestor.Common.Security;
+using Gestor.Common.Validation;
+using Gestor.Model.API;
+using Gestor.Model.Common;
+using Gestor.Model.Domain.Common;
+using Gestor.Model.Domain.Configuracoes;
+using Gestor.Model.Domain.Ferramentas;
+using Gestor.Model.Domain.Financeiro;
+using Gestor.Model.Domain.Generic;
+using Gestor.Model.Domain.MalaDireta;
+using Gestor.Model.Domain.Seguros;
+using Gestor.Model.Helper;
+using Gestor.Model.License;
+using System;
+using System.Collections;
+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.Drawer
+{
+ public class ArquivoDigitalViewModel : BaseSegurosViewModel
+ {
+ private readonly ClienteServico _servico;
+
+ private Visibility _assinarVisibility = Visibility.Collapsed;
+
+ private Visibility _visibilityWhatsApp = Visibility.Collapsed;
+
+ private bool _carregando;
+
+ private bool _activated = true;
+
+ private bool _adDocumento;
+
+ private Visibility _adDocumentoVisibility;
+
+ private bool _isVisibleSalvar;
+
+ private Visibility _enviarSelecionadosVisibility;
+
+ private Cliente _selectedCliente = new Cliente();
+
+ private ObservableCollection<ClienteTelefone> _telefones = new ObservableCollection<ClienteTelefone>();
+
+ private ObservableCollection<IndiceArquivoDigital> _arquivos = new ObservableCollection<IndiceArquivoDigital>();
+
+ private ObservableCollection<IndiceArquivoDigital> _arquivosTela = new ObservableCollection<IndiceArquivoDigital>();
+
+ private IndiceArquivoDigital _selectedArquivo = new IndiceArquivoDigital();
+
+ private ObservableCollection<Gestor.Model.Domain.Common.ArquivoDigital> _arquivosAnexados = new ObservableCollection<Gestor.Model.Domain.Common.ArquivoDigital>();
+
+ private Gestor.Model.Domain.Common.ArquivoDigital _selectedAnexado = new Gestor.Model.Domain.Common.ArquivoDigital();
+
+ private string _titulo = "";
+
+ private ObservableCollection<ClienteEmail> _emails = new ObservableCollection<ClienteEmail>();
+
+ private string _assunto;
+
+ private string _corpo;
+
+ private string _nome;
+
+ private string _documento;
+
+ private string _email;
+
+ private string _licencas;
+
+ private string _assinadorKey;
+
+ public bool Activated
+ {
+ get
+ {
+ return this._activated;
+ }
+ set
+ {
+ this._activated = value;
+ base.OnPropertyChanged("Activated");
+ }
+ }
+
+ public bool AdDocumento
+ {
+ get
+ {
+ return this._adDocumento;
+ }
+ set
+ {
+ this._adDocumento = value;
+ this.CarregarArquivos();
+ base.OnPropertyChanged("AdDocumento");
+ }
+ }
+
+ public Visibility AdDocumentoVisibility
+ {
+ get
+ {
+ return this._adDocumentoVisibility;
+ }
+ set
+ {
+ this._adDocumentoVisibility = value;
+ base.OnPropertyChanged("AdDocumentoVisibility");
+ }
+ }
+
+ public ObservableCollection<IndiceArquivoDigital> Arquivos
+ {
+ get
+ {
+ return this._arquivos;
+ }
+ set
+ {
+ this._arquivos = value;
+ this.ArquivosTela = value;
+ base.OnPropertyChanged("Arquivos");
+ }
+ }
+
+ public ObservableCollection<Gestor.Model.Domain.Common.ArquivoDigital> ArquivosAnexados
+ {
+ get
+ {
+ return this._arquivosAnexados;
+ }
+ set
+ {
+ this._arquivosAnexados = value;
+ this.IsVisibleSalvar = (value == null ? false : value.Count > 0);
+ base.OnPropertyChanged("ArquivosAnexados");
+ }
+ }
+
+ public ObservableCollection<IndiceArquivoDigital> ArquivosTela
+ {
+ get
+ {
+ return this._arquivosTela;
+ }
+ set
+ {
+ this._arquivosTela = value;
+ base.OnPropertyChanged("ArquivosTela");
+ }
+ }
+
+ public Visibility AssinarVisibility
+ {
+ get
+ {
+ return this._assinarVisibility;
+ }
+ set
+ {
+ this._assinarVisibility = value;
+ base.OnPropertyChanged("AssinarVisibility");
+ }
+ }
+
+ public string Assunto
+ {
+ get
+ {
+ return this._assunto;
+ }
+ set
+ {
+ this._assunto = value;
+ base.OnPropertyChanged("Assunto");
+ }
+ }
+
+ public bool Carregando
+ {
+ get
+ {
+ return this._carregando;
+ }
+ set
+ {
+ this._carregando = value;
+ base.IsEnabled = !value;
+ base.OnPropertyChanged("Carregando");
+ }
+ }
+
+ public string Corpo
+ {
+ get
+ {
+ return this._corpo;
+ }
+ set
+ {
+ this._corpo = value;
+ base.OnPropertyChanged("Corpo");
+ }
+ }
+
+ public string Documento
+ {
+ get
+ {
+ return this._documento;
+ }
+ set
+ {
+ this._documento = value;
+ base.OnPropertyChanged("Documento");
+ }
+ }
+
+ public string Email
+ {
+ get
+ {
+ return this._email;
+ }
+ set
+ {
+ string str;
+ if (value != null)
+ {
+ str = value.Trim();
+ }
+ else
+ {
+ str = null;
+ }
+ this._email = str;
+ base.OnPropertyChanged("Email");
+ }
+ }
+
+ public ObservableCollection<ClienteEmail> Emails
+ {
+ get
+ {
+ return this._emails;
+ }
+ set
+ {
+ this._emails = value;
+ base.OnPropertyChanged("Emails");
+ }
+ }
+
+ public Visibility EnviarSelecionadosVisibility
+ {
+ get
+ {
+ return this._enviarSelecionadosVisibility;
+ }
+ set
+ {
+ this._enviarSelecionadosVisibility = (!base.Restricao(20) ? value : Visibility.Collapsed);
+ base.OnPropertyChanged("EnviarSelecionadosVisibility");
+ }
+ }
+
+ private FiltroArquivoDigital Filtro
+ {
+ get;
+ }
+
+ public bool IsVisibleSalvar
+ {
+ get
+ {
+ return this._isVisibleSalvar;
+ }
+ set
+ {
+ this._isVisibleSalvar = value;
+ base.OnPropertyChanged("IsVisibleSalvar");
+ }
+ }
+
+ public string Licencas
+ {
+ get
+ {
+ return this._licencas;
+ }
+ set
+ {
+ this._licencas = value;
+ base.OnPropertyChanged("Licencas");
+ }
+ }
+
+ public string Nome
+ {
+ get
+ {
+ return this._nome;
+ }
+ set
+ {
+ this._nome = value;
+ base.OnPropertyChanged("Nome");
+ }
+ }
+
+ public Gestor.Model.Domain.Common.ArquivoDigital SelectedAnexado
+ {
+ get
+ {
+ return this._selectedAnexado;
+ }
+ set
+ {
+ this._selectedAnexado = value;
+ base.OnPropertyChanged("SelectedAnexado");
+ }
+ }
+
+ public IndiceArquivoDigital SelectedArquivo
+ {
+ get
+ {
+ return this._selectedArquivo;
+ }
+ set
+ {
+ this._selectedArquivo = value;
+ base.OnPropertyChanged("SelectedArquivo");
+ }
+ }
+
+ public Cliente SelectedCliente
+ {
+ get
+ {
+ return this._selectedCliente;
+ }
+ set
+ {
+ this._selectedCliente = value;
+ base.OnPropertyChanged("SelectedCliente");
+ }
+ }
+
+ public ObservableCollection<ClienteTelefone> Telefones
+ {
+ get
+ {
+ return this._telefones;
+ }
+ set
+ {
+ this._telefones = value;
+ base.OnPropertyChanged("Telefones");
+ }
+ }
+
+ public string Titulo
+ {
+ get
+ {
+ return this._titulo;
+ }
+ set
+ {
+ this._titulo = value;
+ base.OnPropertyChanged("Titulo");
+ }
+ }
+
+ public Visibility VisibilityWhatsApp
+ {
+ get
+ {
+ return this._visibilityWhatsApp;
+ }
+ set
+ {
+ this._visibilityWhatsApp = value;
+ base.OnPropertyChanged("VisibilityWhatsApp");
+ }
+ }
+
+ public ArquivoDigitalViewModel(FiltroArquivoDigital filtro)
+ {
+ this.Filtro = filtro;
+ this._servico = new ClienteServico();
+ this.CarregarArquivos();
+ this.VisibilityWhatsApp = (filtro.get_Tipo() == 2 || filtro.get_Tipo() == 3 || filtro.get_Tipo() == 4 || filtro.get_Tipo() == 5 ? Visibility.Visible : Visibility.Collapsed);
+ this.AdDocumentoVisibility = ((filtro.get_Tipo() == 4 || filtro.get_Tipo() == 3 || filtro.get_Tipo() == 5) && (new PermissaoArquivoDigitalServico()).BuscarPermissao(Recursos.Usuario, 2).get_Consultar() ? Visibility.Visible : Visibility.Collapsed);
+ base.EnableMenu = true;
+ switch (filtro.get_Tipo())
+ {
+ case 0:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 17:
+ {
+ this.EnviarSelecionadosVisibility = Visibility.Collapsed;
+ return;
+ }
+ default:
+ {
+ this.EnviarSelecionadosVisibility = Visibility.Visible;
+ return;
+ }
+ }
+ }
+
+ public async void Anexar()
+ {
+ ObservableCollection<IndiceArquivoDigital> arquivos = this.Arquivos;
+ List<Gestor.Model.Domain.Common.ArquivoDigital> list = arquivos.Select<IndiceArquivoDigital, Gestor.Model.Domain.Common.ArquivoDigital>((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<Gestor.Model.Domain.Common.ArquivoDigital>();
+ List<Gestor.Model.Domain.Common.ArquivoDigital> arquivoDigitals = await base.AddAttachments(this.ArquivosAnexados.ToList<Gestor.Model.Domain.Common.ArquivoDigital>(), list);
+ if (arquivoDigitals != null)
+ {
+ List<ConfiguracaoSistema> configuracoes = Recursos.Configuracoes;
+ if (!configuracoes.Any<ConfiguracaoSistema>((ConfiguracaoSistema x) => x.get_Configuracao() == 47))
+ {
+ arquivoDigitals = await base.ShowDialogAnexar(arquivoDigitals, false);
+ if (arquivoDigitals == null)
+ {
+ return;
+ }
+ }
+ arquivoDigitals.AddRange(this.ArquivosAnexados);
+ this.ArquivosAnexados = new ObservableCollection<Gestor.Model.Domain.Common.ArquivoDigital>(arquivoDigitals);
+ }
+ }
+
+ public async Task<ArquivoParaAssinaturaAssinador> Assinar(IndiceArquivoDigital indice, bool lote = false)
+ {
+ ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador;
+ object obj;
+ int num = 0;
+ try
+ {
+ AssinaturaServico assinaturaServico = new AssinaturaServico();
+ Gestor.Application.Servicos.ArquivoDigitalServico arquivoDigitalServico = new Gestor.Application.Servicos.ArquivoDigitalServico();
+ if (await assinaturaServico.VerificarAssinado(indice.get_Id()))
+ {
+ if (!lote)
+ {
+ await base.ShowMessage("ARQUIVO JÁ ASSINADO", "OK", "", false);
+ }
+ arquivoParaAssinaturaAssinador = null;
+ return arquivoParaAssinaturaAssinador;
+ }
+ else if (await assinaturaServico.VerificarEnviado(indice.get_Id()))
+ {
+ arquivoParaAssinaturaAssinador = await assinaturaServico.Reenviar(indice.get_Id());
+ return arquivoParaAssinaturaAssinador;
+ }
+ else if (this.Nome == null || string.IsNullOrWhiteSpace(this.Nome))
+ {
+ if (!lote)
+ {
+ await base.ShowMessage("É NECESSÁRIO QUE O ASSINANTE POSSUA UM NOME VÁLIDO", "OK", "", false);
+ }
+ arquivoParaAssinaturaAssinador = null;
+ return arquivoParaAssinaturaAssinador;
+ }
+ else if (this.Documento == null || !Gestor.Common.Validation.ValidationHelper.ValidateDocument(this.Documento))
+ {
+ if (!lote)
+ {
+ await base.ShowMessage("É NECESSÁRIO QUE O ASSINANTE POSSUA UM DOCUMENTO VÁLIDO", "OK", "", false);
+ }
+ arquivoParaAssinaturaAssinador = null;
+ return arquivoParaAssinaturaAssinador;
+ }
+ else if (this.Documento.Length > 14)
+ {
+ if (!lote)
+ {
+ await base.ShowMessage("O DOCUMENTO DO ASSINANTE DEVE SER CPF E NÃO CNPJ", "OK", "", false);
+ }
+ arquivoParaAssinaturaAssinador = null;
+ return arquivoParaAssinaturaAssinador;
+ }
+ else if (this.Email == null || !Gestor.Model.Helper.ValidationHelper.ValidacaoEmail(this.Email))
+ {
+ if (!lote)
+ {
+ await base.ShowMessage("É NECESSÁRIO QUE O ASSINANTE POSSUA UM E-MAIL VÁLIDO", "OK", "", false);
+ }
+ arquivoParaAssinaturaAssinador = null;
+ return arquivoParaAssinaturaAssinador;
+ }
+ else
+ {
+ Gestor.Model.Domain.Common.ArquivoDigital arquivoDigital = await arquivoDigitalServico.BuscarPorId(indice.get_IdArquivoDigital(), indice.get_Bd());
+ long id = (long)0;
+ Gestor.Model.Domain.Seguros.Documento documento = new Gestor.Model.Domain.Seguros.Documento();
+ switch (this.Filtro.get_Tipo())
+ {
+ case 2:
+ {
+ id = ((Gestor.Model.Domain.Seguros.Documento)this.Filtro.get_Parente()).get_Id();
+ break;
+ }
+ case 3:
+ {
+ id = ((Parcela)this.Filtro.get_Parente()).get_Documento().get_Id();
+ break;
+ }
+ case 4:
+ {
+ id = ((Item)this.Filtro.get_Parente()).get_Documento().get_Id();
+ break;
+ }
+ case 5:
+ {
+ id = ((Sinistro)this.Filtro.get_Parente()).get_ControleSinistro().get_Item().get_Documento().get_Id();
+ break;
+ }
+ default:
+ {
+ arquivoParaAssinaturaAssinador = null;
+ return arquivoParaAssinaturaAssinador;
+ }
+ }
+ AssinaturaServico assinaturaServico1 = assinaturaServico;
+ ApoliceAssinador apoliceAssinador = new ApoliceAssinador();
+ apoliceAssinador.set_ArquivoId(indice.get_Id());
+ apoliceAssinador.set_ClienteId(this.SelectedCliente.get_Id());
+ apoliceAssinador.set_Cliente(this.Nome);
+ apoliceAssinador.set_Email(this.Email);
+ apoliceAssinador.set_Documento(this.Documento);
+ apoliceAssinador.set_Id(id);
+ ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador1 = await assinaturaServico1.Assinar(arquivoDigital, apoliceAssinador);
+ arquivoParaAssinaturaAssinador = await assinaturaServico.Save(arquivoParaAssinaturaAssinador1);
+ return arquivoParaAssinaturaAssinador;
+ }
+ }
+ catch (Exception exception)
+ {
+ obj = exception;
+ num = 1;
+ }
+ if (num != 1)
+ {
+ throw null;
+ }
+ Exception exception1 = (Exception)obj;
+ string[] newLine = new string[] { "ERRO AO ENVIAR PARA ASSINATURA", Environment.NewLine, exception1.Message, Environment.NewLine, "POR FAVOR CONTATE A AGGER ATRAVÉS DO PAINEL DE ATENDIMENTOS" };
+ await base.ShowMessage(string.Concat(newLine), "OK", "", false);
+ arquivoParaAssinaturaAssinador = null;
+ return arquivoParaAssinaturaAssinador;
+ }
+
+ private void AtualizaEmpresa()
+ {
+ Recursos.Empresa = (new BaseServico()).BuscarEmpresa(Recursos.Usuario.get_IdEmpresa());
+ }
+
+ public void Baixar(IndiceArquivoDigital arquivo, bool abrir = false)
+ {
+ if (arquivo == null || arquivo.get_IdArquivoDigital() == 0)
+ {
+ return;
+ }
+ base.Download(arquivo, abrir);
+ }
+
+ public async Task<bool> BaixarTodos()
+ {
+ bool flag;
+ if (this.Arquivos == null || this.Arquivos.Count == 0)
+ {
+ flag = false;
+ }
+ else
+ {
+ flag = await base.DownloadAll(this.Arquivos.ToList<IndiceArquivoDigital>(), this.Filtro.get_Id());
+ }
+ return flag;
+ }
+
+ public async Task CarregaArquivos()
+ {
+ TipoArquivoDigital tipo;
+ bool id;
+ string email;
+ object emailResponsavel;
+ object nomeResponsavel;
+ object documentoResponsavel;
+ string str;
+ string str1;
+ Cliente cliente;
+ FiltroArquivoDigital filtro = this.Filtro;
+ if (filtro != null)
+ {
+ id = filtro.get_Id() == (long)0;
+ }
+ else
+ {
+ id = false;
+ }
+ if (!id)
+ {
+ this.Carregando = true;
+ base.IsVisible = Visibility.Collapsed;
+ this.AssinarVisibility = Visibility.Collapsed;
+ if (this.Filtro != null)
+ {
+ List<IndiceArquivoDigital> indiceArquivoDigitals = await this.ArquivoDigitalServico.BuscarPorTipo(this.Filtro.get_Tipo(), this.Filtro.get_Id());
+ if (this.AdDocumento)
+ {
+ List<IndiceArquivoDigital> indiceArquivoDigitals1 = indiceArquivoDigitals;
+ List<IndiceArquivoDigital> indiceArquivoDigitals2 = await this.ArquivoDigitalServico.BuscarPorTipo(2, this.Filtro.get_IdApolice());
+ indiceArquivoDigitals1.AddRange(indiceArquivoDigitals2);
+ indiceArquivoDigitals1 = null;
+ }
+ ArquivoDigitalViewModel observableCollection = this;
+ List<IndiceArquivoDigital> indiceArquivoDigitals3 = indiceArquivoDigitals;
+ observableCollection.Arquivos = new ObservableCollection<IndiceArquivoDigital>(
+ from x in indiceArquivoDigitals3
+ orderby x.get_Descricao()
+ select x);
+ tipo = this.Filtro.get_Tipo();
+ switch (tipo)
+ {
+ case 2:
+ {
+ this.AssinarVisibility = Visibility.Visible;
+ Gestor.Model.Domain.Seguros.Documento parente = (Gestor.Model.Domain.Seguros.Documento)this.Filtro.get_Parente();
+ this.SelectedCliente = parente.get_Controle().get_Cliente();
+ ArquivoDigitalViewModel arquivoDigitalViewModel = this;
+ str = (parente.get_Apolice() != string.Empty ? string.Concat("ARQUIVO DIGITAL DA APÓLICE \"", parente.get_Apolice(), "\"") : string.Concat("ARQUIVO DIGITAL DA PROPOSTA \"", parente.get_Proposta(), "\""));
+ arquivoDigitalViewModel.Titulo = str;
+ break;
+ }
+ case 3:
+ {
+ this.AssinarVisibility = Visibility.Visible;
+ Parcela parcela = (Parcela)this.Filtro.get_Parente();
+ this.SelectedCliente = parcela.get_Documento().get_Controle().get_Cliente();
+ ArquivoDigitalViewModel arquivoDigitalViewModel1 = this;
+ str1 = (parcela.get_Documento().get_Apolice() != string.Empty ? string.Format("ARQUIVO DIGITAL DA PARCELA \"{0}\" DA APÓLICE \"{1}\"", parcela.get_NumeroParcela(), parcela.get_Documento().get_Apolice()) : string.Format("ARQUIVO DIGITAL DA PARCELA \"{0}\" DA PROPOSTA \"{1}\"", parcela.get_NumeroParcela(), parcela.get_Documento().get_Proposta()));
+ arquivoDigitalViewModel1.Titulo = str1;
+ DetalheExtrato detalheExtrato = await (new ServicoExtrato()).FindByParcelaId(parcela.get_Id());
+ if (detalheExtrato == null)
+ {
+ break;
+ }
+ indiceArquivoDigitals = await this.ArquivoDigitalServico.BuscarPorTipo(7, detalheExtrato.get_Extrato().get_Id());
+ List<IndiceArquivoDigital> indiceArquivoDigitals4 = indiceArquivoDigitals;
+ indiceArquivoDigitals4.ForEach((IndiceArquivoDigital x) => x.set_NaoExcluir(true));
+ ObservableCollection<IndiceArquivoDigital> arquivos = this.Arquivos;
+ List<IndiceArquivoDigital> indiceArquivoDigitals5 = indiceArquivoDigitals;
+ ExtensionMethods.AddRange<IndiceArquivoDigital>(arquivos, new ObservableCollection<IndiceArquivoDigital>(
+ from x in indiceArquivoDigitals5
+ orderby x.get_Descricao()
+ select x));
+ break;
+ }
+ case 4:
+ {
+ this.AssinarVisibility = Visibility.Visible;
+ Item item = (Item)this.Filtro.get_Parente();
+ this.SelectedCliente = item.get_Documento().get_Controle().get_Cliente();
+ this.Titulo = string.Concat("ARQUIVO DIGITAL DO ITEM \"", item.get_Descricao(), "\"");
+ break;
+ }
+ case 5:
+ {
+ this.AssinarVisibility = Visibility.Visible;
+ Sinistro sinistro = (Sinistro)this.Filtro.get_Parente();
+ this.SelectedCliente = sinistro.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Cliente();
+ string[] numero = new string[] { "ARQUIVO DIGITAL DO SINITRO \"", sinistro.get_Numero(), "\" DO ITEM \"", sinistro.get_ControleSinistro().get_Item().get_Descricao(), "\"" };
+ this.Titulo = string.Concat(numero);
+ break;
+ }
+ case 6:
+ {
+ Vendedor vendedor = (Vendedor)this.Filtro.get_Parente();
+ Cliente cliente1 = new Cliente();
+ cliente1.set_Id(vendedor.get_Id());
+ cliente1.set_Nome(vendedor.get_Nome());
+ this.SelectedCliente = cliente1;
+ this.Titulo = string.Format("ARQUIVO DIGITAL DO VENDEDOR {0} {1}", vendedor.get_Nome(), vendedor.get_Id());
+ break;
+ }
+ case 7:
+ {
+ Extrato extrato = (Extrato)this.Filtro.get_Parente();
+ Cliente cliente2 = new Cliente();
+ cliente2.set_Nome(string.Concat("EXTRATO ", extrato.get_Numero()));
+ this.SelectedCliente = cliente2;
+ this.Titulo = string.Format("ARQUIVO DIGITAL DO EXTRATO {0} ID:{1}", extrato.get_Numero(), extrato.get_Id());
+ break;
+ }
+ case 8:
+ {
+ Seguradora seguradora = (Seguradora)this.Filtro.get_Parente();
+ Cliente cliente3 = new Cliente();
+ cliente3.set_Id(seguradora.get_Id());
+ cliente3.set_Nome(seguradora.get_Nome());
+ this.SelectedCliente = cliente3;
+ this.Titulo = string.Format("ARQUIVO DIGITAL DA SEGURADORA {0} {1}", seguradora.get_Nome(), seguradora.get_Id());
+ break;
+ }
+ case 9:
+ {
+ Lancamento lancamento = (Lancamento)this.Filtro.get_Parente();
+ if (!lancamento.get_Historico().Equals("TRANSFERÊNCIA ENTRE CONTAS"))
+ {
+ Cliente cliente4 = new Cliente();
+ cliente4.set_Id(lancamento.get_Controle().get_Fornecedor().get_Id());
+ cliente4.set_Nome(lancamento.get_Controle().get_Fornecedor().get_Nome());
+ this.SelectedCliente = cliente4;
+ this.Titulo = string.Format("ARQUIVO DIGITAL DO LANCAMENTO {0}, PLANO {1}, CENTRO {2}", lancamento.get_Id(), lancamento.get_Controle().get_Plano().get_Nome(), lancamento.get_Controle().get_Centro().get_Descricao());
+ break;
+ }
+ else
+ {
+ await base.ShowMessage("NÃO É POSSIVEL INCLUIR ARQUIVOS EM TRANSFERÊNCIA ENTRE CONTAS", "OK", "", false);
+ base.CloseDrawer();
+ return;
+ }
+ }
+ case 10:
+ {
+ Fornecedor fornecedor = (Fornecedor)this.Filtro.get_Parente();
+ Cliente cliente5 = new Cliente();
+ cliente5.set_Id(fornecedor.get_Id());
+ cliente5.set_Nome(fornecedor.get_Nome());
+ this.SelectedCliente = cliente5;
+ this.Titulo = string.Format("ARQUIVO DIGITAL DO FORNECEDOR {0} {1}", fornecedor.get_Nome(), fornecedor.get_Id());
+ break;
+ }
+ case 11:
+ {
+ Prospeccao prospeccao = (Prospeccao)this.Filtro.get_Parente();
+ Cliente cliente6 = new Cliente();
+ cliente6.set_Id(prospeccao.get_Id());
+ cliente6.set_Nome(prospeccao.get_Nome());
+ this.SelectedCliente = cliente6;
+ this.Titulo = string.Format("ARQUIVO DIGITAL DA PROSPECÇÃO {0} {1} {2}", prospeccao.get_Nome(), prospeccao.get_Id(), prospeccao.get_Item());
+ break;
+ }
+ case 12:
+ {
+ Usuario usuario = (Usuario)this.Filtro.get_Parente();
+ Cliente cliente7 = new Cliente();
+ cliente7.set_Id(usuario.get_Id());
+ cliente7.set_Nome(usuario.get_Nome());
+ this.SelectedCliente = cliente7;
+ this.Titulo = string.Format("ARQUIVO DIGITAL DO USUÁRIO {0} {1}", usuario.get_Nome(), usuario.get_Id());
+ break;
+ }
+ case 13:
+ {
+ Empresa empresa = (Empresa)this.Filtro.get_Parente();
+ Cliente cliente8 = new Cliente();
+ cliente8.set_Id(empresa.get_Id());
+ cliente8.set_Nome(empresa.get_Nome());
+ this.SelectedCliente = cliente8;
+ this.Titulo = string.Format("ARQUIVO DIGITAL DA EMPRESA {0} {1}", empresa.get_Nome(), empresa.get_Id());
+ break;
+ }
+ case 14:
+ {
+ Socio socio = (Socio)this.Filtro.get_Parente();
+ Cliente cliente9 = new Cliente();
+ cliente9.set_Id(socio.get_Id());
+ cliente9.set_Nome(socio.get_Nome());
+ this.SelectedCliente = cliente9;
+ this.Titulo = string.Format("ARQUIVO DIGITAL DO SÓCIO {0} {1}", socio.get_Nome(), socio.get_Id());
+ break;
+ }
+ case 15:
+ {
+ Tarefa tarefa = (Tarefa)this.Filtro.get_Parente();
+ Cliente cliente10 = new Cliente();
+ cliente10.set_Id(tarefa.get_Id());
+ cliente10.set_Nome(string.Concat("TAREFA - ", tarefa.get_Titulo()));
+ this.SelectedCliente = cliente10;
+ this.Titulo = string.Format("ANEXO DA TAREFA {0} {1}", tarefa.get_Titulo(), tarefa.get_Id());
+ break;
+ }
+ case 16:
+ {
+ NotaFiscal notaFiscal = (NotaFiscal)this.Filtro.get_Parente();
+ Cliente cliente11 = new Cliente();
+ cliente11.set_Id(notaFiscal.get_Id());
+ cliente11.set_Nome(string.Format("NOTA FISCAL - {0} {1:d}", notaFiscal.get_Seguradora().get_NomeSocial(), notaFiscal.get_Data()));
+ this.SelectedCliente = cliente11;
+ this.Titulo = string.Format("ANEXO DA NOTA FISCAL {0} {1:d}", notaFiscal.get_Seguradora().get_NomeSocial(), notaFiscal.get_Data());
+ break;
+ }
+ case 17:
+ {
+ Estipulante estipulante = (Estipulante)this.Filtro.get_Parente();
+ Cliente cliente12 = new Cliente();
+ cliente12.set_Id(estipulante.get_Id());
+ cliente12.set_Nome(string.Concat("ESTIPULANTE - ", estipulante.get_Nome()));
+ this.SelectedCliente = cliente12;
+ this.Titulo = string.Concat("ANEXO DO ESTIPULANTE ", estipulante.get_Nome());
+ break;
+ }
+ default:
+ {
+ this.SelectedCliente = (Cliente)this.Filtro.get_Parente();
+ this.Titulo = string.Concat("ARQUIVO DIGITAL DO CLIENTE \"", this.SelectedCliente.get_Nome(), "\"");
+ break;
+ }
+ }
+ indiceArquivoDigitals = null;
+ }
+ if (this.Filtro != null)
+ {
+ tipo = this.Filtro.get_Tipo();
+ switch (tipo)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ {
+ cliente = await this._servico.BuscarClienteAsync(this.SelectedCliente.get_Id());
+ this.Telefones = await this._servico.BuscarTelefonesAsync(this.SelectedCliente.get_Id());
+ ObservableCollection<ClienteEmail> observableCollection1 = await (new ClienteServico()).BuscarEmailsAsync(this.SelectedCliente.get_Id());
+ if (this.SelectedCliente.get_Documento() == null || Gestor.Common.Validation.ValidationHelper.OnlyNumber(this.SelectedCliente.get_Documento()).Length <= 11)
+ {
+ ArquivoDigitalViewModel arquivoDigitalViewModel2 = this;
+ ClienteEmail clienteEmail = observableCollection1.FirstOrDefault<ClienteEmail>();
+ if (clienteEmail != null)
+ {
+ email = clienteEmail.get_Email();
+ }
+ else
+ {
+ email = null;
+ }
+ arquivoDigitalViewModel2.Email = email;
+ this.Nome = this.SelectedCliente.get_Nome();
+ this.Documento = this.SelectedCliente.get_Documento();
+ goto case 8;
+ }
+ else
+ {
+ ArquivoDigitalViewModel arquivoDigitalViewModel3 = this;
+ Cliente cliente13 = cliente;
+ if (cliente13 != null)
+ {
+ ResponsavelAssinatura responsavelAssinatura = cliente13.get_ResponsavelAssinatura();
+ if (responsavelAssinatura != null)
+ {
+ emailResponsavel = responsavelAssinatura.get_EmailResponsavel();
+ }
+ else
+ {
+ emailResponsavel = null;
+ }
+ }
+ else
+ {
+ emailResponsavel = null;
+ }
+ if (emailResponsavel == null)
+ {
+ ClienteEmail clienteEmail1 = observableCollection1.FirstOrDefault<ClienteEmail>();
+ if (clienteEmail1 != null)
+ {
+ emailResponsavel = clienteEmail1.get_Email();
+ }
+ else
+ {
+ emailResponsavel = null;
+ }
+ }
+ arquivoDigitalViewModel3.Email = (string)emailResponsavel;
+ ArquivoDigitalViewModel arquivoDigitalViewModel4 = this;
+ Cliente cliente14 = cliente;
+ if (cliente14 != null)
+ {
+ ResponsavelAssinatura responsavelAssinatura1 = cliente14.get_ResponsavelAssinatura();
+ if (responsavelAssinatura1 != null)
+ {
+ nomeResponsavel = responsavelAssinatura1.get_NomeResponsavel();
+ }
+ else
+ {
+ nomeResponsavel = null;
+ }
+ }
+ else
+ {
+ nomeResponsavel = null;
+ }
+ if (nomeResponsavel == null)
+ {
+ nomeResponsavel = this.SelectedCliente.get_Nome();
+ }
+ arquivoDigitalViewModel4.Nome = (string)nomeResponsavel;
+ ArquivoDigitalViewModel arquivoDigitalViewModel5 = this;
+ Cliente cliente15 = cliente;
+ if (cliente15 != null)
+ {
+ ResponsavelAssinatura responsavelAssinatura2 = cliente15.get_ResponsavelAssinatura();
+ if (responsavelAssinatura2 != null)
+ {
+ documentoResponsavel = responsavelAssinatura2.get_DocumentoResponsavel();
+ }
+ else
+ {
+ documentoResponsavel = null;
+ }
+ }
+ else
+ {
+ documentoResponsavel = null;
+ }
+ if (documentoResponsavel == null)
+ {
+ documentoResponsavel = this.SelectedCliente.get_Documento();
+ }
+ arquivoDigitalViewModel5.Documento = (string)documentoResponsavel;
+ goto case 8;
+ }
+ }
+ case 6:
+ case 7:
+ case 8:
+ {
+ cliente = null;
+ break;
+ }
+ case 9:
+ {
+ Lancamento parente1 = (Lancamento)this.Filtro.get_Parente();
+ ObservableCollection<ClienteTelefone> observableCollection2 = new ObservableCollection<ClienteTelefone>();
+ ClienteTelefone clienteTelefone = new ClienteTelefone();
+ clienteTelefone.set_Prefixo(parente1.get_Controle().get_Fornecedor().get_Prefixo1());
+ clienteTelefone.set_Numero(parente1.get_Controle().get_Fornecedor().get_Telefone1());
+ observableCollection2.Add(clienteTelefone);
+ ClienteTelefone clienteTelefone1 = new ClienteTelefone();
+ clienteTelefone1.set_Prefixo(parente1.get_Controle().get_Fornecedor().get_Prefixo2());
+ clienteTelefone1.set_Numero(parente1.get_Controle().get_Fornecedor().get_Telefone2());
+ observableCollection2.Add(clienteTelefone1);
+ this.Telefones = observableCollection2;
+ goto case 8;
+ }
+ case 10:
+ {
+ Fornecedor fornecedor1 = (Fornecedor)this.Filtro.get_Parente();
+ ObservableCollection<ClienteTelefone> observableCollection3 = new ObservableCollection<ClienteTelefone>();
+ ClienteTelefone clienteTelefone2 = new ClienteTelefone();
+ clienteTelefone2.set_Prefixo(fornecedor1.get_Prefixo1());
+ clienteTelefone2.set_Numero(fornecedor1.get_Telefone1());
+ observableCollection3.Add(clienteTelefone2);
+ ClienteTelefone clienteTelefone3 = new ClienteTelefone();
+ clienteTelefone3.set_Prefixo(fornecedor1.get_Prefixo2());
+ clienteTelefone3.set_Numero(fornecedor1.get_Telefone2());
+ observableCollection3.Add(clienteTelefone3);
+ this.Telefones = observableCollection3;
+ goto case 8;
+ }
+ default:
+ {
+ if (tipo == 17)
+ {
+ Estipulante estipulante1 = (Estipulante)this.Filtro.get_Parente();
+ ObservableCollection<ClienteTelefone> observableCollection4 = new ObservableCollection<ClienteTelefone>();
+ ClienteTelefone clienteTelefone4 = new ClienteTelefone();
+ clienteTelefone4.set_Prefixo(estipulante1.get_PrimeiroPrefixo());
+ clienteTelefone4.set_Numero(estipulante1.get_PrimeiroTelefone());
+ observableCollection4.Add(clienteTelefone4);
+ ClienteTelefone clienteTelefone5 = new ClienteTelefone();
+ clienteTelefone5.set_Prefixo(estipulante1.get_SegundoPrefixo());
+ clienteTelefone5.set_Numero(estipulante1.get_SegundoTelefone());
+ observableCollection4.Add(clienteTelefone5);
+ this.Telefones = observableCollection4;
+ goto case 8;
+ }
+ else
+ {
+ goto case 8;
+ }
+ }
+ }
+ }
+ base.IsVisible = Visibility.Visible;
+ this.Carregando = false;
+ }
+ }
+
+ public async void CarregarArquivos()
+ {
+ await base.PermissaoTela(6);
+ await base.PermissaoArquivoDigital(this.Filtro.get_Tipo());
+ await this.CarregaArquivos();
+ string str = "PRODUTO NÃO CONTRATADO";
+ List<Licenca> produtos = LicenseHelper.Produtos;
+ if (produtos.Any<Licenca>((Licenca x) => x.get_Produto() == 86))
+ {
+ this._assinadorKey = await AssinadorHelper.Key();
+ int num = await AssinadorHelper.Licencas(this._assinadorKey);
+ str = string.Format("{0} LICENÇAS DISPONÍVEIS", num);
+ }
+ this.Licencas = str;
+ base.VerificarEnables(new long?((long)0));
+ }
+
+ public string CarregarMensagem()
+ {
+ Gestor.Model.Domain.Seguros.Documento parente;
+ Item item;
+ string str;
+ string str1;
+ this.AtualizaEmpresa();
+ if (Recursos.Empresa.get_TipoTelefone1() == 11)
+ {
+ str1 = "0300";
+ }
+ else
+ {
+ str1 = (Recursos.Empresa.get_TipoTelefone1() == 10 ? "0800" : "");
+ }
+ string str2 = str1;
+ str2 = string.Concat(new string[] { str2, " ", Recursos.Empresa.get_PrimeiroPrefixo(), " ", Recursos.Empresa.get_PrimeiroTelefone() });
+ TipoArquivoDigital tipo = this.Filtro.get_Tipo();
+ switch (tipo)
+ {
+ case 1:
+ {
+ return string.Concat(new string[] { "Prezado(a) ", Gestor.Common.Validation.ValidationHelper.Captalize(this.SelectedCliente.get_Nome()), ", segue o(s) link(s) para download referente ao(s) seu(s) arquivo(s). ", Environment.NewLine, Environment.NewLine, "[*LINK*]", Environment.NewLine, Environment.NewLine, "<|LINKASSINATURA|>", Environment.NewLine, Environment.NewLine, "Para mais informações entre contato conosco pelo ", str2, ".", Environment.NewLine, "Atenciosamente ", Gestor.Common.Validation.ValidationHelper.Captalize(Recursos.Empresa.get_Nome()), "." });
+ }
+ case 2:
+ {
+ parente = (Gestor.Model.Domain.Seguros.Documento)this.Filtro.get_Parente();
+ str = (string.IsNullOrWhiteSpace(parente.get_Apolice()) ? string.Concat("Proposta Número ", parente.get_Proposta()) : string.Concat("Apólice Número ", parente.get_Apolice()));
+ string[] strArrays = new string[] { "Prezado(a) ", Gestor.Common.Validation.ValidationHelper.Captalize(this.SelectedCliente.get_Nome()), " segue o(s) link(s) para download do(s) arquivo(s) referente ao seu seguro. ", Environment.NewLine, null };
+ strArrays[4] = string.Format("{0}, {1}, {2} de Vigências entre {3:d} e {4:d}. {5}{6}[*LINK*]{7}{8}<|LINKASSINATURA|>Para mais informações entre contato conosco pelo {9}.{10}Atenciosamente {11}.", new object[] { Gestor.Common.Validation.ValidationHelper.Captalize(parente.get_Controle().get_Seguradora().get_Nome()), Gestor.Common.Validation.ValidationHelper.Captalize(parente.get_Controle().get_Ramo().get_Nome()), str, parente.get_Vigencia1(), parente.get_Vigencia2(), Environment.NewLine, Environment.NewLine, Environment.NewLine, Environment.NewLine, str2, Environment.NewLine, Gestor.Common.Validation.ValidationHelper.Captalize(Recursos.Empresa.get_Nome()) });
+ return string.Concat(strArrays);
+ }
+ case 3:
+ {
+ Parcela parcela = (Parcela)this.Filtro.get_Parente();
+ parente = parcela.get_Documento();
+ str = (string.IsNullOrWhiteSpace(parente.get_Apolice()) ? string.Concat("Proposta Número ", parente.get_Proposta()) : string.Concat("Apólice Número ", parente.get_Apolice()));
+ string[] strArrays1 = new string[] { "Prezado(a) ", Gestor.Common.Validation.ValidationHelper.Captalize(this.SelectedCliente.get_Nome()), " segue o(s) link(s) para download do(s) arquivo(s) referente a sua parcela. ", Environment.NewLine, null, null };
+ strArrays1[4] = string.Format("Parcela {0} de {1}, valor {2:C2} de vencimento {3:d}. {4}", new object[] { parcela.get_NumeroParcela(), parente.get_NumeroParcelas(), parcela.get_Valor(), parcela.get_Vencimento(), Environment.NewLine });
+ strArrays1[5] = string.Format("{0}, {1}, {2} de Vigências entre {3:d} e {4:d}. {5}{6}[*LINK*]{7}{8}<|LINKASSINATURA|>Para mais informações entre contato conosco pelo {9}.{10}Atenciosamente {11}.", new object[] { Gestor.Common.Validation.ValidationHelper.Captalize(parente.get_Controle().get_Seguradora().get_Nome()), Gestor.Common.Validation.ValidationHelper.Captalize(parente.get_Controle().get_Ramo().get_Nome()), str, parente.get_Vigencia1(), parente.get_Vigencia2(), Environment.NewLine, Environment.NewLine, Environment.NewLine, Environment.NewLine, str2, Environment.NewLine, Gestor.Common.Validation.ValidationHelper.Captalize(Recursos.Empresa.get_Nome()) });
+ return string.Concat(strArrays1);
+ }
+ case 4:
+ {
+ item = (Item)this.Filtro.get_Parente();
+ parente = item.get_Documento();
+ str = (string.IsNullOrWhiteSpace(parente.get_Apolice()) ? string.Concat("Proposta Número ", parente.get_Proposta()) : string.Concat("Apólice Número ", parente.get_Apolice()));
+ string[] strArrays2 = new string[] { "Prezado(a) ", Gestor.Common.Validation.ValidationHelper.Captalize(this.SelectedCliente.get_Nome()), " segue o(s) link(s) para download do(s) arquivo(s) referente ao seu seguro. ", Environment.NewLine, "Item ", item.get_Descricao(), ". ", Environment.NewLine, null };
+ strArrays2[8] = string.Format("{0}, {1}, {2} de Vigências entre {3:d} e {4:d}. {5}{6}[*LINK*]{7}{8}<|LINKASSINATURA|>Para mais informações entre contato conosco pelo {9}.{10}Atenciosamente {11}.", new object[] { Gestor.Common.Validation.ValidationHelper.Captalize(parente.get_Controle().get_Seguradora().get_Nome()), Gestor.Common.Validation.ValidationHelper.Captalize(parente.get_Controle().get_Ramo().get_Nome()), str, parente.get_Vigencia1(), parente.get_Vigencia2(), Environment.NewLine, Environment.NewLine, Environment.NewLine, Environment.NewLine, str2, Environment.NewLine, Gestor.Common.Validation.ValidationHelper.Captalize(Recursos.Empresa.get_Nome()) });
+ return string.Concat(strArrays2);
+ }
+ case 5:
+ {
+ Sinistro sinistro = (Sinistro)this.Filtro.get_Parente();
+ item = sinistro.get_ControleSinistro().get_Item();
+ parente = item.get_Documento();
+ str = (string.IsNullOrWhiteSpace(parente.get_Apolice()) ? string.Concat("Proposta Número ", parente.get_Proposta()) : string.Concat("Apólice Número ", parente.get_Apolice()));
+ string[] strArrays3 = new string[] { "Prezado(a) ", Gestor.Common.Validation.ValidationHelper.Captalize(this.SelectedCliente.get_Nome()), " segue o(s) link(s) para download do(s) arquivo(s) referente ao seu sinistro. ", Environment.NewLine, "Sinistro de número ", sinistro.get_Numero(), " Item sinistrado ", sinistro.get_ItemSinistrado(), ". ", Environment.NewLine, null };
+ strArrays3[10] = string.Format("{0}, {1}, {2} de Vigências entre {3:d} e {4:d}. {5}{6}[*LINK*]{7}{8}<|LINKASSINATURA|>Para mais informações entre contato conosco pelo {9}.{10}Atenciosamente {11}.", new object[] { Gestor.Common.Validation.ValidationHelper.Captalize(parente.get_Controle().get_Seguradora().get_Nome()), Gestor.Common.Validation.ValidationHelper.Captalize(parente.get_Controle().get_Ramo().get_Nome()), str, parente.get_Vigencia1(), parente.get_Vigencia2(), Environment.NewLine, Environment.NewLine, Environment.NewLine, Environment.NewLine, str2, Environment.NewLine, Gestor.Common.Validation.ValidationHelper.Captalize(Recursos.Empresa.get_Nome()) });
+ return string.Concat(strArrays3);
+ }
+ default:
+ {
+ if (tipo == 13)
+ {
+ break;
+ }
+ else
+ {
+ goto Label0;
+ }
+ }
+ }
+ return string.Concat(new string[] { "Prezado(a) ", Gestor.Common.Validation.ValidationHelper.Captalize(this.SelectedCliente.get_Nome()), ", segue o(s) link(s) para download referente ao(s) seu(s) arquivo(s). ", Environment.NewLine, Environment.NewLine, "[*LINK*]", Environment.NewLine, Environment.NewLine, "<|LINKASSINATURA|>", Environment.NewLine, Environment.NewLine, "Para mais informações entre contato conosco pelo ", str2, ".", Environment.NewLine, "Atenciosamente ", Gestor.Common.Validation.ValidationHelper.Captalize(Recursos.Empresa.get_Nome()), "." });
+ Label0:
+ return string.Concat(new string[] { "Prezado(a), segue o(s) link(s) para download referente ao(s) seu(s) arquivo(s).", Environment.NewLine, Environment.NewLine, "[*LINK*]", Environment.NewLine, Environment.NewLine, " Para mais informações entre contato conosco pelo ", str2, ".", Environment.NewLine, "Atenciosamente ", Gestor.Common.Validation.ValidationHelper.Captalize(Recursos.Empresa.get_Nome()), "." });
+ }
+
+ public async Task<Uri> CreateLink(IndiceArquivoDigital indice)
+ {
+ DateTime networkTime = Funcoes.GetNetworkTime();
+ string str = string.Format("{0}:{1}:F:{2}", networkTime.Ticks, ApplicationHelper.IdFornecedor, indice.get_Id()).Base64Encode();
+ return Recursos.ApiArquivo.AddQuery<string>("search", str);
+ }
+
+ 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>((Gestor.Model.Domain.Common.ArquivoDigital x) => x.get_Descricao() == arquivo.get_Descricao());
+ this.ArquivosAnexados.Remove(arquivoDigital);
+ this.ArquivosAnexados = new ObservableCollection<Gestor.Model.Domain.Common.ArquivoDigital>(this.ArquivosAnexados);
+ }
+
+ public async void Editar(IndiceArquivoDigital arquivo)
+ {
+ if (arquivo != null && arquivo.get_IdArquivoDigital() != 0)
+ {
+ await this.ArquivoDigitalServico.Save(arquivo);
+ }
+ }
+
+ public async Task<bool> EnviarParaAssinatura()
+ {
+ bool flag;
+ object obj;
+ ObservableCollection<IndiceArquivoDigital> arquivosTela = this.ArquivosTela;
+ if (!arquivosTela.Any<IndiceArquivoDigital>((IndiceArquivoDigital x) => x.get_Assinar()))
+ {
+ await base.ShowMessage("É NECESSÁRIO SELECIONAR AO MENOS UM ARQUIVO PARA ENVIAR PARA ASSINATURA.", "OK", "", false);
+ flag = false;
+ }
+ else if (!await base.ShowMessage("DESEJA ENVIAR OS ARQUIVOS SELECIONADOS PARA ASSINATURA ELETRÔNICA DO SEGURADO?", "SIM", "NÃO", false))
+ {
+ flag = false;
+ }
+ else if (!this.Email.EndsWith(";"))
+ {
+ base.Loading(true);
+ this._assinadorKey = await AssinadorHelper.Key();
+ int num = await AssinadorHelper.Licencas(this._assinadorKey);
+ int num1 = num;
+ ObservableCollection<IndiceArquivoDigital> arquivos = this.Arquivos;
+ if (num1 >= arquivos.Count<IndiceArquivoDigital>((IndiceArquivoDigital x) => {
+ if (!x.get_Assinar())
+ {
+ return false;
+ }
+ return !x.get_EnviadoAssinatura();
+ }))
+ {
+ AssinadorHelper.Parametros = await AssinaturaServico.BuscarParametrosAssinatura(Recursos.Usuario.get_IdEmpresa());
+ int num2 = 0;
+ ObservableCollection<IndiceArquivoDigital> observableCollection = this.ArquivosTela;
+ int num3 = (
+ from x in observableCollection
+ where x.get_Assinar()
+ select x).Count<IndiceArquivoDigital>();
+ ObservableCollection<IndiceArquivoDigital> arquivosTela1 = this.ArquivosTela;
+ foreach (IndiceArquivoDigital indiceArquivoDigital in
+ from x in arquivosTela1
+ where x.get_Assinar()
+ select x)
+ {
+ if (indiceArquivoDigital.get_Assinado())
+ {
+ continue;
+ }
+ if (!indiceArquivoDigital.get_EnviadoAssinatura())
+ {
+ ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador = await this.Assinar(indiceArquivoDigital, false);
+ if (arquivoParaAssinaturaAssinador == null)
+ {
+ continue;
+ }
+ num--;
+ indiceArquivoDigital.set_EnviadoAssinatura(true);
+ indiceArquivoDigital.set_UrlAssinatura(arquivoParaAssinaturaAssinador.get_UrlAssinatura());
+ num2++;
+ indiceArquivoDigital = null;
+ }
+ else
+ {
+ await (new AssinaturaServico()).Reenviar(indiceArquivoDigital.get_Id());
+ }
+ }
+ base.Loading(false);
+ this.Arquivos = new ObservableCollection<IndiceArquivoDigital>(this.Arquivos);
+ await base.ShowMessage(string.Format("{0} DE {1} ARQUIVOS FORAM ENVIADOS PARA ASSINATURA. VOCÊ SERÁ NOTIFICADO QUANDO OS DOCUMENTOS FOREM ASSINADOS", num2, num3), "OK", "", false);
+ flag = true;
+ }
+ else if (base.Restricao(113))
+ {
+ await base.ShowMessage("VOCÊ NÃO POSSUI MAIS LICENÇAS DISPONÍVEIS E O USUÁRIO NÃO PODE CONTRATAR, ENTRE EM CONTATO COM O ADMINISTRADOR DO SISTEMA.", "OK", "", false);
+ base.Loading(false);
+ flag = false;
+ }
+ else if (await base.ShowMessage("VOCÊ NÃO POSSUI MAIS LICENÇAS DISPONÍVEIS, DESEJA CONTRATAR MAIS?", "SIM", "NÃO", false))
+ {
+ Token token = new Token();
+ object[] numeroSerial = new object[] { ApplicationHelper.NumeroSerial, ApplicationHelper.IdFornecedor, Recursos.Usuario.get_Id(), null };
+ obj = (ApplicationHelper.Beta ? "1" : "0");
+ numeroSerial[3] = obj;
+ string str = token.Encrypt(string.Format("{0}:{1}:{2}:{3}", numeroSerial));
+ Parameters parameter = new Parameters();
+ parameter.set_Beta(ApplicationHelper.Beta);
+ parameter.set_Type(8);
+ parameter.set_Application("Assinador.Application.exe");
+ parameter.set_Directory("Assinador.Application");
+ parameter.set_Arguments(str);
+ parameter.set_Run(true);
+ (new DownloadWindow(parameter)).Show();
+ base.Loading(false);
+ flag = false;
+ }
+ else
+ {
+ base.Loading(false);
+ flag = false;
+ }
+ }
+ else
+ {
+ await base.ShowMessage("É NECESSÁRIO QUE O ASSINANTE POSSUA UM E-MAIL VÁLIDO", "OK", "", false);
+ flag = false;
+ }
+ return flag;
+ }
+
+ public async Task Excluir(IndiceArquivoDigital arquivo)
+ {
+ if (arquivo != null && arquivo.get_IdArquivoDigital() != 0)
+ {
+ if (await this.ArquivoDigitalServico.DeleteAttachment(arquivo))
+ {
+ await this.CarregaArquivos();
+ }
+ }
+ }
+
+ public void LimparAnexos()
+ {
+ this.ArquivosAnexados = new ObservableCollection<Gestor.Model.Domain.Common.ArquivoDigital>();
+ }
+
+ public async Task<MalaDireta> PrepararEnvio()
+ {
+ MalaDireta malaDiretum;
+ Item item;
+ string str;
+ Item item1;
+ string str1;
+ MalaDireta malaDiretum1;
+ Gestor.Model.Domain.Seguros.Documento parente;
+ Parcela parcela;
+ ObservableCollection<IndiceArquivoDigital> arquivos = this.Arquivos;
+ if (arquivos.Any<IndiceArquivoDigital>((IndiceArquivoDigital x) => x.get_Selecionado()))
+ {
+ MalaDireta malaDiretum2 = new MalaDireta();
+ malaDiretum2.set_Cliente(this.SelectedCliente);
+ ObservableCollection<IndiceArquivoDigital> observableCollection = this.Arquivos;
+ malaDiretum2.set_ArquivoDigital((
+ from x in observableCollection
+ where x.get_Selecionado()
+ select x).ToList<IndiceArquivoDigital>());
+ malaDiretum1 = malaDiretum2;
+ TipoArquivoDigital tipo = this.Filtro.get_Tipo();
+ switch (tipo)
+ {
+ case 2:
+ {
+ parente = (Gestor.Model.Domain.Seguros.Documento)this.Filtro.get_Parente();
+ List<Item> items = await base.CarregarItem(parente.get_Controle().get_Id(), 0);
+ MalaDireta malaDiretum3 = malaDiretum1;
+ if (items.Count > 1)
+ {
+ item = new Item();
+ item.set_Id((long)0);
+ item.set_Descricao("APÓLICE COLETIVA");
+ }
+ else
+ {
+ item = items.FirstOrDefault<Item>();
+ }
+ malaDiretum3.set_Item(item);
+ malaDiretum1.set_Apolice(parente);
+ ArquivoDigitalViewModel arquivoDigitalViewModel = this;
+ str = (parente.get_Apolice() != string.Empty ? string.Concat("DOCUMENTOS REFERENTES A APÓLICE ", parente.get_Apolice()) : string.Concat("DOCUMENTOS REFERENTES A PROPOSTA ", parente.get_Proposta()));
+ arquivoDigitalViewModel.Assunto = str;
+ this.Corpo = string.Concat("PREZADO CLIENTE ", this.SelectedCliente.get_Nome(), ", EM ANEXO OS DOCUMENTOS REFERENTES AO SEU SEGURO.");
+ malaDiretum1.set_Tela(2);
+ break;
+ }
+ case 3:
+ {
+ parcela = (Parcela)this.Filtro.get_Parente();
+ malaDiretum1.set_Apolice(parcela.get_Documento());
+ malaDiretum1.set_Parcela(parcela);
+ List<Item> items1 = await base.CarregarItem(parcela.get_Documento().get_Controle().get_Id(), 0);
+ MalaDireta malaDiretum4 = malaDiretum1;
+ if (items1.Count > 1)
+ {
+ item1 = new Item();
+ item1.set_Id((long)0);
+ item1.set_Descricao("APÓLICE COLETIVA");
+ }
+ else
+ {
+ item1 = items1.FirstOrDefault<Item>();
+ }
+ malaDiretum4.set_Item(item1);
+ ArquivoDigitalViewModel arquivoDigitalViewModel1 = this;
+ str1 = (parcela.get_Documento().get_Apolice() != string.Empty ? string.Format("DOCUMENTOS REFERENTE A PARCELA {0} DA APÓLICE {1}", parcela.get_NumeroParcela(), parcela.get_Documento().get_Apolice()) : string.Format("DOCUMENTOS REFERENTE A PARCELA {0} DA PROPOSTA {1}", parcela.get_NumeroParcela(), parcela.get_Documento().get_Proposta()));
+ arquivoDigitalViewModel1.Assunto = str1;
+ this.Corpo = string.Concat("PREZADO CLIENTE ", this.SelectedCliente.get_Nome(), ", EM ANEXO OS DOCUMENTOS REFERENTES AS PARCELAS DE SEU SEGURO.");
+ malaDiretum1.set_Tela(5);
+ break;
+ }
+ case 4:
+ {
+ Item parente1 = (Item)this.Filtro.get_Parente();
+ malaDiretum1.set_Apolice(parente1.get_Documento());
+ malaDiretum1.set_Item(parente1);
+ this.Assunto = string.Concat("DOCUMENTOS REFERENTES AO ITEM ", parente1.get_Descricao());
+ this.Corpo = string.Concat("PREZADO CLIENTE ", this.SelectedCliente.get_Nome(), ", EM ANEXO OS DOCUMENTOS REFERENTES AO SEU BEM.");
+ malaDiretum1.set_Tela(3);
+ break;
+ }
+ case 5:
+ {
+ Sinistro sinistro = (Sinistro)this.Filtro.get_Parente();
+ malaDiretum1.set_Sinistro(sinistro);
+ malaDiretum1.set_Item(sinistro.get_ControleSinistro().get_Item());
+ malaDiretum1.set_Apolice(sinistro.get_ControleSinistro().get_Item().get_Documento());
+ this.Titulo = string.Concat("DOCUMENTOS REFERENTES AO SINITRO ", sinistro.get_Numero());
+ string[] nome = new string[] { "PREZADO CLIENTE ", this.SelectedCliente.get_Nome(), ", EM ANEXO OS DOCUMENTOS REFERENTES SINISTRO DO ITEM ", sinistro.get_ControleSinistro().get_Item().get_Descricao(), "." };
+ this.Corpo = string.Concat(nome);
+ malaDiretum1.set_Tela(7);
+ break;
+ }
+ default:
+ {
+ if (tipo == 11)
+ {
+ Prospeccao prospeccao = (Prospeccao)this.Filtro.get_Parente();
+ malaDiretum1.set_Prospeccao(prospeccao);
+ malaDiretum1.get_Cliente().set_Id((long)0);
+ this.Assunto = string.Concat("DOCUMENTOS REFERENTES PROSPECÇÃO ", prospeccao.get_Nome());
+ this.Corpo = "";
+ malaDiretum1.set_Tela(33);
+ break;
+ }
+ else
+ {
+ this.SelectedCliente = (Cliente)this.Filtro.get_Parente();
+ this.Titulo = string.Concat("ARQUIVO DIGITAL DO CLIENTE \"", this.SelectedCliente.get_Nome(), "\"");
+ break;
+ }
+ }
+ }
+ parente = null;
+ parcela = null;
+ malaDiretum = malaDiretum1;
+ }
+ else
+ {
+ await base.ShowMessage("É NECESSÁRIO SELECIONAR AO MENOS UM ARQUIVO PARA ENVIO.", "OK", "", false);
+ malaDiretum = null;
+ }
+ malaDiretum1 = null;
+ return malaDiretum;
+ }
+
+ public async Task SalvarAnexos()
+ {
+ if (this.ArquivosAnexados != null && this.ArquivosAnexados.Count != 0)
+ {
+ this.Carregando = true;
+ List<Gestor.Model.Domain.Common.ArquivoDigital> list = this.ArquivosAnexados.ToList<Gestor.Model.Domain.Common.ArquivoDigital>();
+ if (await base.SalvarAttachments(list, this.Filtro.get_Tipo(), this.Filtro.get_Id()))
+ {
+ await this.CarregaArquivos();
+ this.ArquivosAnexados = new ObservableCollection<Gestor.Model.Domain.Common.ArquivoDigital>();
+ this.Carregando = false;
+ }
+ else
+ {
+ this.Carregando = false;
+ }
+ }
+ }
+ }
+} \ No newline at end of file