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/Generic/BaseViewModel.cs | 3140 ++++++++++++++++++++ 1 file changed, 3140 insertions(+) create mode 100644 Codemerx/Gestor.Application/ViewModels/Generic/BaseViewModel.cs (limited to 'Codemerx/Gestor.Application/ViewModels/Generic/BaseViewModel.cs') diff --git a/Codemerx/Gestor.Application/ViewModels/Generic/BaseViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Generic/BaseViewModel.cs new file mode 100644 index 0000000..e680922 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Generic/BaseViewModel.cs @@ -0,0 +1,3140 @@ +using Agger.Registro; +using Gestor.Application; +using Gestor.Application.Actions; +using Gestor.Application.Componentes; +using Gestor.Application.Drawers; +using Gestor.Application.Helpers; +using Gestor.Application.Model; +using Gestor.Application.Properties; +using Gestor.Application.Servicos; +using Gestor.Application.Servicos.Ferramentas; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Common.Helpers; +using Gestor.Common.Validation; +using Gestor.Model.Common; +using Gestor.Model.Domain.Aggilizador; +using Gestor.Model.Domain.Common; +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.License; +using MaterialDesignThemes.Wpf; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Forms; +using System.Windows.Input; +using System.Windows.Threading; +using Xceed.Wpf.AvalonDock.Controls; + +namespace Gestor.Application.ViewModels.Generic +{ + public abstract class BaseViewModel : INotifyPropertyChanged + { + public Gestor.Application.Servicos.ArquivoDigitalServico ArquivoDigitalServico; + + public PermissaoArquivoDigitalServico ServicoPermissArquivoDigital; + + public PermissaoUsuarioServico ServicoPermissUsuario; + + public RestricaoUsuarioServico ServicoRestriUsuario; + + public VendedorUsuarioServico ServicoVendedorUsuario; + + public bool _incluirPermissEnabled; + + public bool _alterarPermissEnabled; + + public bool _excluirPermissEnabled; + + public long LastAccessId; + + public TipoTela LastAccessTela; + + private bool _enableButtons = true; + + private bool _enableIncluir = true; + + private bool _isVisibleEmpresa; + + private bool _enableAlterar; + + private bool _enableExcluir; + + private long? _lastId; + + private bool _incluirParcelaEnabled; + + private bool _alterarParcelaEnabled; + + private bool _excluirParcelaEnabled; + + private bool _permissaoWhatsapp; + + public bool Initialized; + + private bool _enableFields; + + private bool _allowEditParcela; + + private bool _isEnableEdit; + + private bool _isEnabledEditEndosso; + + private bool _enableMenu; + + private bool _enableMainMenu; + + private bool _isEnabled; + + private Visibility _isVisible; + + private object _popupContent; + + public bool AllowEditParcela + { + get + { + return this._allowEditParcela; + } + set + { + this._allowEditParcela = value; + this.OnPropertyChanged("AllowEditParcela"); + } + } + + public bool AlterarParcelaEnabled + { + get + { + return this._alterarParcelaEnabled; + } + set + { + this._alterarParcelaEnabled = value; + this.OnPropertyChanged("AlterarParcelaEnabled"); + } + } + + public AutoCompleteFilterPredicate CoberturaItemFilter + { + get + { + AutoCompleteFilterPredicate u003cu003e9_1610 = BaseViewModel.u003cu003ec.u003cu003e9__161_0; + if (u003cu003e9_1610 == null) + { + u003cu003e9_1610 = new AutoCompleteFilterPredicate(BaseViewModel.u003cu003ec.u003cu003e9, (string searchText, object obj) => ((CoberturaPadrao)obj).get_Descricao().ToUpper().Contains(searchText.ToUpper())); + BaseViewModel.u003cu003ec.u003cu003e9__161_0 = u003cu003e9_1610; + } + return u003cu003e9_1610; + } + } + + public bool EnableAlterar + { + get + { + return this._enableAlterar; + } + set + { + this._enableAlterar = this._alterarPermissEnabled & value; + this.OnPropertyChanged("EnableAlterar"); + } + } + + public bool EnableButtons + { + get + { + return this._enableButtons; + } + set + { + this._enableButtons = value; + this.OnPropertyChanged("EnableButtons"); + } + } + + public bool EnableExcluir + { + get + { + return this._enableExcluir; + } + set + { + this._enableExcluir = this._excluirPermissEnabled & value; + this.OnPropertyChanged("EnableExcluir"); + } + } + + public bool EnableFields + { + get + { + return this._enableFields; + } + set + { + this._enableFields = value; + this.OnPropertyChanged("EnableFields"); + } + } + + public bool EnableIncluir + { + get + { + return this._enableIncluir; + } + set + { + this._enableIncluir = this._incluirPermissEnabled & value; + this.OnPropertyChanged("EnableIncluir"); + } + } + + public bool EnableMainMenu + { + get + { + return this._enableMainMenu; + } + set + { + this._enableMainMenu = value; + this.OnPropertyChanged("EnableMainMenu"); + } + } + + public bool EnableMenu + { + get + { + return this._enableMenu; + } + set + { + this._enableMenu = value; + this.OnPropertyChanged("EnableMenu"); + } + } + + public string ErroCamposInvalidos + { + get; + } + + public bool ExcluirParcelaEnabled + { + get + { + return this._excluirParcelaEnabled; + } + set + { + this._excluirParcelaEnabled = value; + this.OnPropertyChanged("ExcluirParcelaEnabled"); + } + } + + public bool IncluirParcelaEnabled + { + get + { + return this._incluirParcelaEnabled; + } + set + { + this._incluirParcelaEnabled = value; + this.OnPropertyChanged("IncluirParcelaEnabled"); + } + } + + public bool IsEnabled + { + get + { + return this._isEnabled; + } + set + { + this._isEnabled = value; + this.OnPropertyChanged("IsEnabled"); + } + } + + public bool IsEnabledEdit + { + get + { + return this._isEnableEdit; + } + set + { + this._isEnableEdit = value; + this.OnPropertyChanged("IsEnabledEdit"); + } + } + + public bool IsEnabledEditEndosso + { + get + { + return this._isEnabledEditEndosso; + } + set + { + this._isEnabledEditEndosso = value; + this.OnPropertyChanged("IsEnabledEditEndosso"); + } + } + + public Visibility IsVisible + { + get + { + return this._isVisible; + } + set + { + this._isVisible = value; + this.OnPropertyChanged("IsVisible"); + } + } + + public bool IsVisibleEmpresa + { + get + { + return this._isVisibleEmpresa; + } + set + { + this._isVisibleEmpresa = value; + this.OnPropertyChanged("IsVisibleEmpresa"); + } + } + + public bool PermissaoWhatsapp + { + get + { + return this._permissaoWhatsapp; + } + set + { + this._permissaoWhatsapp = value; + this.OnPropertyChanged("PermissaoWhatsapp"); + } + } + + public object PopupContent + { + get + { + return this._popupContent; + } + set + { + this._popupContent = value; + this.OnPropertyChanged("PopupContent"); + } + } + + protected BaseViewModel() + { + this._enableButtons = true; + this._enableIncluir = true; + if (LicenseHelper.Produtos != null) + { + if (!LicenseHelper.Produtos.Any((Licenca x) => { + if (x.get_Produto() != 2) + { + return false; + } + return x.get_Status() == 1; + })) + { + goto Label1; + } + Empresa empresa = Recursos.Empresa; + if (empresa != null) + { + id = empresa.get_Id() == (long)1; + goto Label0; + } + else + { + id = false; + goto Label0; + } + } + Label1: + id = false; + Label0: + this._isVisibleEmpresa = id; + this._enableAlterar = true; + this._enableExcluir = true; + this._permissaoWhatsapp = true; + this._allowEditParcela = true; + this._isEnableEdit = true; + this._isEnabledEditEndosso = true; + Usuario usuario = Recursos.Usuario; + if (usuario != null) + { + flag = usuario.get_Id() > (long)0; + } + else + { + flag = false; + } + this._enableMenu = flag; + this._enableMainMenu = true; + this._isEnabled = true; + this._isVisible = Visibility.Collapsed; + this.ErroCamposInvalidos = string.Concat("HÁ CAMPOS DESTACADOS QUE DEVEM SER PREENCHIDOS CORRETAMENTE.", Environment.NewLine, "REALIZE A CORREÇÃO E TENTE NOVAMENTE."); + base(); + bool id; + bool flag; + this.ArquivoDigitalServico = new Gestor.Application.Servicos.ArquivoDigitalServico(); + Gestor.Application.Actions.Actions.EnableMainMenu = (Action)Delegate.Combine(Gestor.Application.Actions.Actions.EnableMainMenu, new Action(this.HabilitarMenu)); + Gestor.Application.Actions.Actions.EnableMenu = (Action)Delegate.Combine(Gestor.Application.Actions.Actions.EnableMenu, new Action(this.HabilitarMenuSecundario)); + this.ServicoPermissArquivoDigital = new PermissaoArquivoDigitalServico(); + this.ServicoPermissUsuario = new PermissaoUsuarioServico(); + this.ServicoRestriUsuario = new RestricaoUsuarioServico(); + this.ServicoVendedorUsuario = new VendedorUsuarioServico(); + } + + public bool Abrir(IndiceArquivoDigital indice, Gestor.Model.Domain.Common.ArquivoDigital arquivo) + { + bool flag; + string tempPath = Path.GetTempPath(); + Guid? azureGuid = arquivo.get_AzureGuid(); + string str = string.Format("{0}{1}{2}", tempPath, (azureGuid.HasValue ? azureGuid.GetValueOrDefault() : Guid.NewGuid()), Gestor.Common.Validation.ValidationHelper.GetDefaultExtension(arquivo.get_Extensao())); + try + { + using (BinaryWriter binaryWriter = new BinaryWriter(File.Open(str, FileMode.Create))) + { + binaryWriter.Write(arquivo.get_Arquivo()); + } + Process.Start(str); + return true; + } + catch (Exception exception) + { + flag = false; + } + return flag; + } + + public async void AbrirLog(TipoTela tipoTela, long id) + { + if (Recursos.Usuario.get_Id() != 0) + { + RestricaoUsuario restricaoUsuario = this.ServicoRestriUsuario.BuscarRestricao(Recursos.Usuario, 109); + if (restricaoUsuario == null || !restricaoUsuario.get_Restricao()) + { + this.ShowDrawer(new LogDrawer(tipoTela, id, null, 0), 0, false); + } + else + { + await this.ShowMessage("VOCÊ NÃO POSSUI PERMISSÃO PARA ACESSAR OS LOGS", "OK", "", false); + } + } + else + { + this.ShowDrawer(new LogDrawer(tipoTela, id, null, 0), 0, false); + } + } + + public async void AbrirLogEmail(TipoTela tela, long id) + { + if (Recursos.Usuario.get_Id() != 0) + { + RestricaoUsuario restricaoUsuario = this.ServicoRestriUsuario.BuscarRestricao(Recursos.Usuario, 109); + if (restricaoUsuario == null || !restricaoUsuario.get_Restricao()) + { + this.ShowDrawer(new LogEmailDrawer(tela, id, false), 0, false); + } + else + { + await this.ShowMessage("VOCÊ NÃO POSSUI PERMISSÃO PARA ACESSAR OS LOGS", "OK", "", false); + } + } + else + { + this.ShowDrawer(new LogEmailDrawer(tela, id, false), 0, false); + } + } + + public async void AbrirLogParcela(List parcelas, long documento, int numparcela = 0) + { + if (Recursos.Usuario.get_Id() != 0) + { + RestricaoUsuario restricaoUsuario = this.ServicoRestriUsuario.BuscarRestricao(Recursos.Usuario, 109); + if (restricaoUsuario == null || !restricaoUsuario.get_Restricao()) + { + this.ShowDrawer(new LogDrawer(5, documento, parcelas, numparcela), 0, false); + } + else + { + await this.ShowMessage("VOCÊ NÃO POSSUI PERMISSÃO PARA ACESSAR OS LOGS", "OK", "", false); + } + } + else + { + this.ShowDrawer(new LogDrawer(5, documento, parcelas, numparcela), 0, false); + } + } + + public async Task> AddAttachments(List attachments, List attacheds) + { + List arquivoDigitals; + List arquivoDigitals1; + List strs = new List(); + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + openFileDialog.Multiselect = true; + openFileDialog.Filter = "Todos os Arquivos|*.pdf;*.jpg;*.jpeg;*.png;*.bmp;*.doc;*.docx;*.xls;*.xlsx;*.json;*.rar;*.zip;*.msg;*.eml;*.txt|Arquivos PDF|*.pdf|Imagens|*.jpg;*.jpeg;*.png;*.bmp|Documentos|*.doc;*.docx;*.msg|Planilhas|*.xls;*.xlsx|Arquivos do Aggilizador|*.json|Arquivos de Áudio|*.amr;*.ogg"; + openFileDialog.InitialDirectory = Environment.SpecialFolder.Desktop.ToString(); + if (DialogResult.OK == openFileDialog.ShowDialog()) + { + strs.AddRange(openFileDialog.FileNames); + } + else + { + arquivoDigitals = null; + return arquivoDigitals; + } + } + strs = await this.ValidateAttachment(attachments, strs); + strs = await this.ValidateAttachment(attacheds, strs); + attachments = new List(); + foreach (string str in strs) + { + int num = 0; + try + { + string extension = Path.GetExtension(str); + using (MemoryStream memoryStream = new MemoryStream(File.ReadAllBytes(str))) + { + byte[] numArray = new byte[checked((IntPtr)memoryStream.Length)]; + memoryStream.Position = (long)0; + memoryStream.Read(numArray, 0, (int)numArray.Length); + Gestor.Model.Domain.Common.ArquivoDigital arquivoDigital = new Gestor.Model.Domain.Common.ArquivoDigital(); + arquivoDigital.set_Arquivo(numArray); + arquivoDigital.set_Descricao(Path.GetFileNameWithoutExtension(str)); + arquivoDigital.set_Extensao(extension); + attachments.Add(arquivoDigital); + } + } + catch (Exception exception) + { + num = 1; + } + if (num != 1) + { + continue; + } + string[] newLine = new string[] { "NÃO FOI POSSÍVEL CARREGAR O ARQUIVO ", str, ".", Environment.NewLine, "O ARQUIVO ESTÁ INACESSÍVEL OU SENDO UTILIZADO POR OUTRO PROCESSO." }; + await this.ShowMessage(string.Concat(newLine), "OK", "", false); + } + if (attachments.Count == 0) + { + arquivoDigitals1 = null; + } + else + { + arquivoDigitals1 = attachments; + } + arquivoDigitals = arquivoDigitals1; + return arquivoDigitals; + } + + public async void Alterar(bool alterar) + { + Action enablePesquisarClientes = Gestor.Application.Actions.Actions.EnablePesquisarClientes; + if (enablePesquisarClientes != null) + { + enablePesquisarClientes(!alterar); + } + else + { + } + Action enableMenu = Gestor.Application.Actions.Actions.EnableMenu; + if (enableMenu != null) + { + enableMenu(!alterar); + } + else + { + } + Action enableMainMenu = Gestor.Application.Actions.Actions.EnableMainMenu; + if (enableMainMenu != null) + { + enableMainMenu(!alterar); + } + else + { + } + this.EnableFields = alterar; + this.EnableMenu = !alterar; + if (alterar) + { + this.EnableIncluir = false; + this.EnableAlterar = false; + this.EnableExcluir = false; + this.EnableButtons = false; + } + else + { + this.VerificarEnables(this._lastId); + } + this.AllowEditParcela = !alterar; + this.IsEnabledEdit = !alterar; + this.IsEnabledEditEndosso = !alterar; + if ((Funcoes.GetNetworkTime() - ApplicationHelper.ChecagemVersao).TotalMinutes > 10) + { + await this.VerificarVersao(); + } + } + + public async Task BuscaCep(string cep) + { + return await (new CepService()).SearchDirect(cep); + } + + internal async Task> BuscarBanco(string value) + { + List bancos = await Task.Run>(() => (new BaseServico()).BuscarBanco(value)); + return bancos; + } + + internal void CloseDrawer() + { + Window window = System.Windows.Application.Current.Windows.OfType().SingleOrDefault((Window x) => x.IsActive); + DrawerHost drawerHost = Extentions.FindVisualChildren(window).FirstOrDefault(); + Extentions.FindVisualChildren(window).ToList().ForEach((WebEditor x) => x.Visibility = Visibility.Visible); + if (drawerHost == null) + { + return; + } + drawerHost.set_IsBottomDrawerOpen(false); + drawerHost.set_IsTopDrawerOpen(false); + if (drawerHost.get_IsLeftDrawerOpen()) + { + drawerHost.set_IsLeftDrawerOpen(false); + return; + } + drawerHost.set_IsRightDrawerOpen(false); + } + + private void CloseSlackBar() + { + Thread.Sleep(5000); + Dispatcher dispatcher = App.ProgressRing.Dispatcher; + if (dispatcher == null) + { + return; + } + dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => this.ToggleSnackBar("", false))); + } + + private async Task CreateDialogAdvertising() + { + DialogAdvertising dialogAdvertising; + DateTime? nullable; + DialogAdvertising dialogAdvertising1; + DateTime? nullable1; + DateTime? nullable2; + string str; + bool flag; + bool flag1; + object empty; + JObject jObject = await this.LoadJsonAdvertising(Address.get_SurveyJson()); + if (jObject != null) + { + JToken item = jObject.get_Item("Inicio"); + if (item != null) + { + nullable1 = new DateTime?(Extensions.Value(item)); + } + else + { + nullable = null; + nullable1 = nullable; + } + DateTime? nullable3 = nullable1; + JToken jToken = jObject.get_Item("Fim"); + if (jToken != null) + { + nullable2 = new DateTime?(Extensions.Value(jToken)); + } + else + { + nullable = null; + nullable2 = nullable; + } + DateTime? nullable4 = nullable2; + DateTime networkTime = Funcoes.GetNetworkTime(); + Gestor.Application.Model.Configuracoes configuraco = this.LoadConfiguracoes(); + JToken item1 = jObject.get_Item("UrlPost"); + if (item1 != null) + { + str = Extensions.Value(item1); + } + else + { + str = null; + } + string str1 = str; + if (Gestor.Common.Validation.ValidationHelper.IsNullOrEmpty(str1)) + { + JToken jToken1 = jObject.get_Item("UrlFixa"); + if (jToken1 != null) + { + empty = Extensions.Value(jToken1); + } + else + { + empty = null; + } + if (empty == null) + { + empty = string.Empty; + } + str1 = (string)empty; + } + if (configuraco.LinkPromo == str1 || configuraco.NaoverPromo) + { + dialogAdvertising = null; + } + else + { + nullable = nullable4; + DateTime dateTime = networkTime; + flag = (nullable.HasValue ? nullable.GetValueOrDefault() >= dateTime : false); + if (flag) + { + nullable = nullable3; + dateTime = networkTime; + flag1 = (nullable.HasValue ? nullable.GetValueOrDefault() <= dateTime : false); + if (!flag1) + { + goto Label1; + } + dialogAdvertising1 = new DialogAdvertising(jObject, false); + goto Label0; + } + Label1: + dialogAdvertising1 = await this.LoadDialogAdertisingPromo(); + Label0: + dialogAdvertising = dialogAdvertising1; + } + } + else + { + dialogAdvertising = await this.LoadDialogAdertisingPromo(); + } + return dialogAdvertising; + } + + private void CriarConfiguracaoPadrao(string configFile) + { + if (File.Exists(configFile)) + { + return; + } + File.WriteAllText(configFile, JsonConvert.SerializeObject(new Gestor.Application.Model.Configuracoes() + { + LinkPromo = "", + NaoverPromo = false + }, 1)); + } + + public async void Download(IndiceArquivoDigital indice, bool open = true) + { + DateTime valueOrDefault; + bool arquivo; + int? nullable; + bool flag; + Gestor.Model.Domain.Common.ArquivoDigital arquivoDigital; + if (indice.get_Id() != 0) + { + arquivoDigital = null; + if (indice.get_Assinado()) + { + Gestor.Model.Domain.Common.ArquivoDigital arquivoDigital1 = await this.ArquivoDigitalServico.BuscarPorId(indice.get_Id()); + if (arquivoDigital1 != null) + { + flag = arquivoDigital1.get_Arquivo(); + } + else + { + flag = false; + } + if (flag) + { + if (!arquivoDigital1.get_Extensao().Contains(".")) + { + arquivoDigital1.set_Extensao(string.Concat(".", arquivoDigital1.get_Extensao())); + } + arquivoDigital = arquivoDigital1; + } + } + if (arquivoDigital == null) + { + arquivoDigital = await this.ArquivoDigitalServico.BuscarPorId(indice.get_IdArquivoDigital(), indice.get_Bd()); + } + Gestor.Model.Domain.Common.ArquivoDigital arquivoDigital2 = arquivoDigital; + if (arquivoDigital2 != null) + { + arquivo = arquivoDigital2.get_Arquivo(); + } + else + { + arquivo = false; + } + if (!arquivo || arquivoDigital.get_Extensao() == null) + { + string str = "DOCUMENTO NÃO POSSUI PDF"; + DateTime? dataCriacao = indice.get_DataCriacao(); + if (dataCriacao.HasValue) + { + valueOrDefault = dataCriacao.GetValueOrDefault(); + nullable = new int?(valueOrDefault.Year); + } + else + { + nullable = null; + } + int? nullable1 = nullable; + valueOrDefault = DateTime.Now; + if (nullable1.GetValueOrDefault() <= valueOrDefault.Year - 5 & nullable1.HasValue) + { + str = string.Concat(str, " OU POR SER UM ARQUIVO ANTIGO, TENTE NOVAMENTE EM ALGUNS MINUTOS"); + } + await this.ShowMessage(string.Concat(str, "."), "OK", "", false); + } + else + { + if (open) + { + if (!this.Abrir(indice, arquivoDigital)) + { + await this.ShowMessage("NÃO FOI POSSÍVEL ABRIR O ARQUIVO. ESCOLHA UM LOCAL PARA SALVAR O ARQUIVO.", "OK", "", false); + } + else + { + arquivoDigital = null; + return; + } + } + using (SaveFileDialog saveFileDialog = new SaveFileDialog()) + { + saveFileDialog.Filter = "All Files|*.*"; + saveFileDialog.FileName = indice.get_Descricao(); + if (DialogResult.OK != saveFileDialog.ShowDialog()) + { + arquivoDigital = null; + return; + } + else if (!File.Exists(string.Concat(saveFileDialog.FileName, Gestor.Common.Validation.ValidationHelper.GetDefaultExtension(arquivoDigital.get_Extensao())))) + { + using (BinaryWriter binaryWriter = new BinaryWriter(File.Open(string.Concat(saveFileDialog.FileName, Gestor.Common.Validation.ValidationHelper.GetDefaultExtension(arquivoDigital.get_Extensao())), FileMode.Create))) + { + binaryWriter.Write(arquivoDigital.get_Arquivo()); + } + } + else + { + string[] descricao = new string[] { "JÁ EXISTE UM ARQUIVO COM O NOME DE ", arquivoDigital.get_Descricao(), Gestor.Common.Validation.ValidationHelper.GetDefaultExtension(arquivoDigital.get_Extensao()), " NA PASTA SELECIONADA. ", Environment.NewLine, "TENTE NOVAMENTE EM OUTRA PASTA." }; + await this.ShowMessage(string.Concat(descricao), "OK", "", false); + arquivoDigital = null; + return; + } + } + saveFileDialog = null; + } + } + arquivoDigital = null; + } + + public async Task DownloadAll(List indices, long id) + { + bool flag; + bool arquivo; + bool arquivo1; + string str; + using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog()) + { + if (DialogResult.OK == folderBrowserDialog.ShowDialog()) + { + str = string.Format("{0}\\{1}", folderBrowserDialog.SelectedPath, id); + Directory.CreateDirectory(str); + } + else + { + flag = false; + str = null; + return flag; + } + } + int num = 1; + foreach (IndiceArquivoDigital index in indices) + { + Gestor.Model.Domain.Common.ArquivoDigital arquivoDigital = null; + if (index.get_Assinado()) + { + Gestor.Model.Domain.Common.ArquivoDigital arquivoDigital1 = await this.ArquivoDigitalServico.BuscarPorId(index.get_Id()); + if (arquivoDigital1 != null) + { + arquivo1 = arquivoDigital1.get_Arquivo(); + } + else + { + arquivo1 = false; + } + if (arquivo1) + { + arquivoDigital = arquivoDigital1; + } + } + if (arquivoDigital == null) + { + arquivoDigital = await this.ArquivoDigitalServico.BuscarPorId(index.get_IdArquivoDigital(), index.get_Bd()); + } + Gestor.Model.Domain.Common.ArquivoDigital arquivoDigital2 = arquivoDigital; + if (arquivoDigital2 != null) + { + arquivo = arquivoDigital2.get_Arquivo(); + } + else + { + arquivo = false; + } + if (!arquivo || arquivoDigital.get_Extensao() == null) + { + flag = false; + str = null; + return flag; + } + else + { + if (File.Exists(Gestor.Common.Validation.ValidationHelper.NormalizePath(string.Concat(str, "\\", index.get_Descricao(), Gestor.Common.Validation.ValidationHelper.GetDefaultExtension(arquivoDigital.get_Extensao()))))) + { + index.set_Descricao(string.Format("{0}_{1}", index.get_Descricao(), num)); + num++; + } + using (BinaryWriter binaryWriter = new BinaryWriter(File.Open(Gestor.Common.Validation.ValidationHelper.NormalizePath(string.Concat(str, "\\", index.get_Descricao(), Gestor.Common.Validation.ValidationHelper.GetDefaultExtension(arquivoDigital.get_Extensao()))), FileMode.Create))) + { + binaryWriter.Write(arquivoDigital.get_Arquivo()); + } + arquivoDigital = null; + index = null; + } + } + Process.Start(str); + flag = true; + str = null; + return flag; + } + + public async Task DownloadAll(List ids, TipoArquivoVinculo type) + { + bool arquivo; + string str; + Gestor.Application.Servicos.ArquivoDigitalServico arquivoDigitalServico; + if (ids != null && ids.Count != 0) + { + str = string.Format("{0}{1}", Path.GetTempPath(), Guid.NewGuid()); + BaseServico baseServico = new BaseServico(); + arquivoDigitalServico = new Gestor.Application.Servicos.ArquivoDigitalServico(); + List arquivoVinculos = await baseServico.ArquivoVinculo(ids, type); + int num = 1; + if (!Directory.Exists(str)) + { + Directory.CreateDirectory(str); + } + foreach (ArquivoVinculo arquivoVinculo in await arquivoDigitalServico.BaixarArquivosPendentes(arquivoVinculos)) + { + if (arquivoVinculo != null) + { + arquivo = arquivoVinculo.get_Arquivo(); + } + else + { + arquivo = false; + } + if (!arquivo) + { + continue; + } + string str1 = Guid.NewGuid().ToString(); + if (File.Exists(string.Concat(str, "\\", str1, ".pdf"))) + { + str1 = string.Format("{0}_{1}", str1, num); + num++; + } + using (BinaryWriter binaryWriter = new BinaryWriter(File.Open(string.Concat(str, "\\", str1, ".pdf"), FileMode.Create))) + { + binaryWriter.Write(arquivoVinculo.get_Arquivo()); + } + } + Process.Start(str); + } + str = null; + arquivoDigitalServico = null; + } + + public async Task EmitirCheckList(List documentos) + { + DateTime vencimento; + string str; + string str1; + string str2; + string str3; + string str4; + string str5; + string str6; + string str7; + string nome; + ParcelaServico parcelaServico = new ParcelaServico(); + string str8 = "CHECK LIST DE PROTOCOLOS"; + str8 = string.Concat(str8, "
CHECK LIST DE PROTOCOLOS

"); + str8 = string.Concat(str8, "
"); + str8 = string.Concat(str8, ""); + int num = 1; + str8 = string.Concat(str8, ""); + str8 = string.Concat(str8, ""); + str8 = string.Concat(str8, ""); + str8 = string.Concat(str8, ""); + str8 = string.Concat(str8, ""); + str8 = string.Concat(str8, ""); + str8 = string.Concat(str8, ""); + str8 = string.Concat(str8, ""); + List documentos1 = documentos; + documentos = ( + from x in documentos1 + orderby x.get_Controle().get_Cliente().get_Nome() + select x).ToList(); + foreach (Documento documento in documentos) + { + Documento documento1 = documento; + ObservableCollection observableCollection = await parcelaServico.BuscarParcelasAsync(documento.get_Id()); + documento1.set_Parcelas(observableCollection); + documento1 = null; + string[] strArrays = new string[] { str8, ""; + str8 = string.Concat(strArrays); + string[] apolice = new string[] { str8, ""; + str8 = string.Concat(apolice); + if (documento.get_Parcelas() != null) + { + ObservableCollection parcelas = documento.get_Parcelas(); + if (( + from x in parcelas + where x.get_SubTipo() == 1 + select x).ToList().Count <= 0) + { + goto Label1; + } + ObservableCollection parcelas1 = documento.get_Parcelas(); + vencimento = ( + from x in parcelas1 + where x.get_NumeroParcela() == 1 + select x).First().get_Vencimento(); + vencimento = vencimento.Date; + str2 = vencimento.ToString("dd/MM/yyyy"); + goto Label0; + } + Label1: + str2 = ""; + Label0: + string str9 = str2; + string[] strArrays1 = new string[] { str8, ""; + str8 = string.Concat(strArrays1); + if (documento.get_Parcelas() != null) + { + ObservableCollection observableCollection1 = documento.get_Parcelas(); + if (( + from x in observableCollection1 + where x.get_SubTipo() == 1 + select x).ToList().Count <= 1) + { + goto Label3; + } + ObservableCollection parcelas2 = documento.get_Parcelas(); + vencimento = ( + from x in parcelas2 + where x.get_NumeroParcela() == 2 + select x).First().get_Vencimento(); + vencimento = vencimento.Date; + str4 = vencimento.ToString("dd/MM/yyyy"); + goto Label2; + } + Label3: + str4 = ""; + Label2: + str9 = str4; + string[] strArrays2 = new string[] { str8, ""; + str8 = string.Concat(strArrays2); + string str10 = str8; + str6 = (num % 2 == 0 ? "WhiteSmoke" : "White"); + str8 = string.Concat(str10, ""); + string[] strArrays3 = new string[] { str8, ""; + str8 = string.Concat(strArrays3); + if (num != 1) + { + num++; + } + else + { + num = 0; + } + } + DateTime networkTime = Funcoes.GetNetworkTime(); + string nome1 = Recursos.Usuario.get_Nome(); + str8 = string.Concat(str8, "
CLIENTEAPÓLICE1ª PARCELA2ª PARCELARECEBIDA PORVENDEDOR
"; + strArrays[4] = documento.get_Controle().get_Cliente().get_Nome(); + strArrays[5] = ""; + apolice[4] = documento.get_Apolice(); + apolice[5] = ""; + strArrays1[4] = str9; + strArrays1[5] = ""; + strArrays2[4] = str9; + strArrays2[5] = "____________/____/___"; + Vendedor vendedorPrincipal = documento.get_VendedorPrincipal(); + if (vendedorPrincipal != null) + { + nome = vendedorPrincipal.get_Nome(); + } + else + { + nome = null; + } + strArrays3[4] = nome; + strArrays3[5] = "
"); + string str11 = str8; + int count = documentos.Count; + str8 = string.Concat(str11, "
TOTAL DE PROTOCOLOS: ", count.ToString(), "
"); + str8 = string.Concat(str8, string.Format("Emitido pelo usuário: {0}, data e hora: {1}.", nome1, networkTime)); + str8 = string.Concat(str8, ""); + string tempPath = Path.GetTempPath(); + string str12 = string.Format("{0}{1}CheckList_{2:ddMMyyyyhhmmss}.html", tempPath, (TipoExtrato)0, networkTime); + StreamWriter streamWriter = new StreamWriter(str12, true, Encoding.UTF8); + streamWriter.Write(str8); + streamWriter.Close(); + Process.Start(str12); + parcelaServico = null; + str8 = null; + } + + public async Task EmitirProtocolos(List> lista, bool doisPorPagina, List protocolo) + { + DateTime vigencia1; + string str; + ClienteEndereco clienteEndereco; + string str1; + string str2; + string str3; + string str4; + string str5; + string str6; + string str7; + string str8; + bool flag; + string email; + string str9; + string str10; + string shortDateString; + string shortDateString1; + string shortDateString2; + string str11; + string obsProtocolo; + string str12; + string pasta; + string nome; + string str13; + string str14; + string str15; + object obj; + string shortDateString3; + string shortDateString4; + string str16; + object obj1; + int num = 0; + DateTime networkTime = Funcoes.GetNetworkTime(); + int num1 = 0; + StringBuilder stringBuilder = new StringBuilder(); + StringBuilder stringBuilder1 = new StringBuilder(); + foreach (Tuple listum in lista) + { + num1++; + ApoliceServico apoliceServico = new ApoliceServico(); + ItemServico itemServico = new ItemServico(); + ClienteServico clienteServico = new ClienteServico(); + ParcelaServico parcelaServico = new ParcelaServico(); + Documento documento = await apoliceServico.BuscarApoliceAsync(listum.Item1, false, false); + Documento documento1 = documento; + documento1.get_Controle().get_Cliente().set_Telefones(clienteServico.BuscarTelefones(documento1.get_Controle().get_Cliente().get_Id())); + Cliente cliente = documento1.get_Controle().get_Cliente(); + ObservableCollection observableCollection = await clienteServico.BuscarEmailsAsync(documento1.get_Controle().get_Cliente().get_Id()); + cliente.set_Emails(observableCollection); + cliente = null; + cliente = documento1.get_Controle().get_Cliente(); + ObservableCollection observableCollection1 = await clienteServico.BuscarEnderecosAsync(documento1.get_Controle().get_Cliente().get_Id()); + cliente.set_Enderecos(observableCollection1); + cliente = null; + if (documento1.get_VendedorPrincipal() == null) + { + Documento documento2 = documento1; + Vendedor vendedor = await apoliceServico.BuscarVendedorPrincipal(documento1.get_Controle().get_Id()); + documento2.set_VendedorPrincipal(vendedor); + documento2 = null; + } + ObservableCollection observableCollection2 = await itemServico.BuscarItems(documento1.get_Id(), 2, false); + if (observableCollection2 == null || observableCollection2.Count == 0) + { + observableCollection2 = await itemServico.BuscarItens(documento1.get_Controle().get_Id(), 3); + } + ObservableCollection observableCollection3 = await parcelaServico.BuscarParcelasAsync(documento1.get_Id()); + documento1.set_ProtocoloEmail(protocolo.Find((Documento x) => x.get_Id() == documento1.get_Id()).get_ProtocoloEmail()); + documento1.set_ProtocoloTelefone(protocolo.Find((Documento x) => x.get_Id() == documento1.get_Id()).get_ProtocoloTelefone()); + documento1.set_ProtocoloParcela(protocolo.Find((Documento x) => x.get_Id() == documento1.get_Id()).get_ProtocoloParcela()); + documento1.set_ProtocoloEndereco(protocolo.Find((Documento x) => x.get_Id() == documento1.get_Id()).get_ProtocoloEndereco()); + documento1.set_ProtocoloVendedor(protocolo.Find((Documento x) => x.get_Id() == documento1.get_Id()).get_ProtocoloVendedor()); + ObservableCollection telefones = documento1.get_Controle().get_Cliente().get_Telefones(); + if (documento1.get_ProtocoloTelefone() && telefones != null) + { + ObservableCollection observableCollection4 = telefones; + if (!( + from t in observableCollection4 + where !string.IsNullOrEmpty(t.get_Numero()) + select t).Any()) + { + goto Label1; + } + ObservableCollection observableCollection5 = telefones; + IEnumerable clienteTelefones = + from t in observableCollection5 + where !string.IsNullOrEmpty(t.get_Numero()) + select t; + str = string.Join(" | ", ( + from t in clienteTelefones + select string.Concat(t.get_Prefixo(), " ", t.get_Numero())).ToList()); + goto Label0; + } + Label1: + str = null; + Label0: + string str17 = string.Concat("Telefone: ", str, ""); + ObservableCollection enderecos = documento1.get_Controle().get_Cliente().get_Enderecos(); + if (enderecos != null) + { + clienteEndereco = enderecos.FirstOrDefault(); + } + else + { + clienteEndereco = null; + } + ClienteEndereco clienteEndereco1 = clienteEndereco; + if (protocolo.Find((Documento x) => x.get_Id() == documento1.get_Id()).get_ProtocoloEndereco()) + { + string[] strArrays = new string[12]; + str1 = (string.IsNullOrWhiteSpace(clienteEndereco1.get_Endereco()) ? "" : clienteEndereco1.get_Endereco()); + strArrays[0] = str1; + strArrays[1] = ", "; + str2 = (string.IsNullOrWhiteSpace(clienteEndereco1.get_Numero()) ? "" : clienteEndereco1.get_Numero()); + strArrays[2] = str2; + str3 = (string.IsNullOrWhiteSpace(clienteEndereco1.get_Complemento()) ? "" : string.Concat(" - ", clienteEndereco1.get_Complemento())); + strArrays[3] = str3; + strArrays[4] = " - "; + str4 = (string.IsNullOrWhiteSpace(clienteEndereco1.get_Bairro()) ? "" : clienteEndereco1.get_Bairro()); + strArrays[5] = str4; + strArrays[6] = " - "; + str5 = (string.IsNullOrWhiteSpace(clienteEndereco1.get_Cidade()) ? "" : clienteEndereco1.get_Cidade()); + strArrays[7] = str5; + strArrays[8] = " - "; + str6 = (string.IsNullOrWhiteSpace(clienteEndereco1.get_Estado()) ? "" : clienteEndereco1.get_Estado()); + strArrays[9] = str6; + strArrays[10] = ", "; + str7 = (string.IsNullOrWhiteSpace(clienteEndereco1.get_Cep()) ? "" : clienteEndereco1.get_Cep()); + strArrays[11] = str7; + str8 = string.Concat(strArrays); + } + else + { + str8 = null; + } + string str18 = str8; + ObservableCollection emails = documento1.get_Controle().get_Cliente().get_Emails(); + flag = (!documento1.get_ProtocoloEmail() || emails == null || emails.Count <= 0 ? false : !string.IsNullOrEmpty(emails.First().get_Email())); + if (flag) + { + email = emails.First().get_Email(); + } + else + { + email = null; + } + string str19 = string.Concat(" Email: ", email, ""); + str9 = (telefones != null || clienteEndereco1 != null || emails != null ? "" : "style='display:none;'"); + string str20 = str9; + str10 = (string.IsNullOrWhiteSpace(documento1.get_Endosso()) ? ", " : string.Concat(" e
endosso de n° ", documento1.get_Endosso(), ", ")); + string str21 = str10; + string[] strArrays1 = new string[] { "iniciado em ", null, null, null, null }; + if (string.IsNullOrWhiteSpace(documento1.get_Vigencia1().ToShortDateString())) + { + shortDateString = ""; + } + else + { + vigencia1 = documento1.get_Vigencia1(); + shortDateString = vigencia1.ToShortDateString(); + } + strArrays1[1] = shortDateString; + strArrays1[2] = " até "; + DateTime? vigencia2 = documento1.get_Vigencia2(); + if (vigencia2.HasValue) + { + shortDateString1 = vigencia2.GetValueOrDefault().ToShortDateString(); + } + else + { + shortDateString1 = null; + } + if (string.IsNullOrWhiteSpace(shortDateString1)) + { + shortDateString2 = ""; + } + else + { + vigencia2 = documento1.get_Vigencia2(); + if (vigencia2.HasValue) + { + shortDateString2 = vigencia2.GetValueOrDefault().ToShortDateString(); + } + else + { + shortDateString2 = null; + } + } + strArrays1[3] = shortDateString2; + strArrays1[4] = ""; + string str22 = string.Concat(strArrays1); + if (observableCollection2 == null || observableCollection2.Count <= 0) + { + str11 = ""; + } + else + { + str16 = (string.IsNullOrWhiteSpace(observableCollection2[0].get_Descricao()) ? "" : observableCollection2[0].get_Descricao()); + str11 = string.Concat("", str16, ""); + } + string str23 = str11; + string str24 = ""; + Documento documento3 = protocolo.FirstOrDefault((Documento x) => x.get_Id() == documento1.get_Id()); + if (documento3 != null) + { + obsProtocolo = documento3.get_ObsProtocolo(); + } + else + { + obsProtocolo = null; + } + string str25 = obsProtocolo; + str12 = (string.IsNullOrEmpty(str25) ? "" : string.Concat("OBSERVAÇÃO: ", str25)); + string str26 = str12; + if (documento1.get_ProtocoloParcela() && observableCollection3 != null && observableCollection3.Count > 0) + { + if (observableCollection3.Count != 1) + { + object count = observableCollection3.Count; + if (string.IsNullOrWhiteSpace(observableCollection3[0].get_Vencimento().ToShortDateString())) + { + obj = ""; + } + else + { + vigencia1 = observableCollection3[0].get_Vencimento(); + obj = vigencia1.ToShortDateString(); + } + string str27 = string.Format("{0} parcelas: vencimento 1ª parcela: {1}, ", count, obj); + if (string.IsNullOrWhiteSpace(observableCollection3[1].get_Vencimento().ToShortDateString())) + { + shortDateString3 = ""; + } + else + { + vigencia1 = observableCollection3[1].get_Vencimento(); + shortDateString3 = vigencia1.ToShortDateString(); + } + str24 = string.Concat(str27, "vencimento 2ª parcela: ", shortDateString3, ", demais parcelas, vide apólice."); + } + else + { + string str28 = str24; + if (string.IsNullOrWhiteSpace(observableCollection3[0].get_Vencimento().ToShortDateString())) + { + shortDateString4 = ""; + } + else + { + vigencia1 = observableCollection3[0].get_Vencimento(); + shortDateString4 = vigencia1.ToShortDateString(); + } + str24 = string.Concat(str28, "1 parcela: vencimento ", shortDateString4, " "); + } + } + if (documento1.get_ProtocoloVendedor()) + { + pasta = documento1.get_Pasta(); + } + else + { + pasta = null; + } + string str29 = pasta; + if (documento1.get_ProtocoloVendedor()) + { + Vendedor vendedorPrincipal = documento1.get_VendedorPrincipal(); + if (vendedorPrincipal != null) + { + nome = vendedorPrincipal.get_Nome(); + } + else + { + nome = null; + } + } + else + { + nome = null; + } + string str30 = nome; + str13 = (str29 != null || str30 != null ? "" : "style = 'display:none;'"); + string str31 = str13; + StringBuilder stringBuilder2 = stringBuilder1; + string protocoloTemplate = Resources.ProtocoloTemplate; + str14 = (doisPorPagina ? "12.2cm" : "24.4cm"); + string str32 = protocoloTemplate.Replace("{Tamanho}", str14).Replace("{Observacao}", str26).Replace("{Nome}", documento1.get_Controle().get_Cliente().get_Nome()).Replace("{Email}", str19).Replace("{DisplayTelefones}", str20); + str15 = (telefones != null ? str17 : ""); + stringBuilder2.Append(str32.Replace("{Telefones}", str15).Replace("{Endereço}", str18).Replace("{Ramo}", documento1.get_Controle().get_Ramo().get_Nome()).Replace("{Apolice}", documento1.get_Apolice()).Replace("{Endosso}", str21).Replace("{Seguradora}", documento1.get_Controle().get_Seguradora().get_Nome()).Replace("{Vigencias}", str22).Replace("{Item}", str23).Replace("{Parcelas}", str24).Replace("{Pasta}", str29).Replace("{Vendedor}", str30).Replace("{DisplayVendedor}", str31).Replace("{NomeCorretora}", Recursos.Empresa.get_Nome()).Replace("{Usuario}", Recursos.Usuario.get_Nome()).Replace("{Emissao}", string.Format("{0}", networkTime))); + num++; + if (!doisPorPagina || num1 == 2) + { + stringBuilder1.Append("
"); + num1 = 0; + } + apoliceServico = null; + itemServico = null; + clienteServico = null; + parcelaServico = null; + observableCollection2 = null; + } + stringBuilder.Append(Resources.ProtocoloPageTemplate.Replace("{Protocolos}", stringBuilder1.ToString())); + string tempPath = Path.GetTempPath(); + string str33 = string.Format("{0}{1}_{2:ddMMyyyyhhmmss}.html", tempPath, (TipoExtrato)0, networkTime); + StreamWriter streamWriter = new StreamWriter(str33, true, Encoding.UTF8); + streamWriter.Write(stringBuilder); + streamWriter.Close(); + Process.Start(str33); + BaseViewModel baseViewModel = this; + object count1 = lista.Count; + obj1 = (lista.Count == 1 ? "" : "S"); + string str34 = string.Format("EMITIU PROTOCOLO DE {0} DOCUMENTO{1}", count1, obj1); + long num2 = (long)0; + TipoTela? nullable = new TipoTela?(59); + List> tuples = lista; + baseViewModel.RegistrarAcao(str34, num2, nullable, string.Concat("IDS DOS DOCUMENTOS E SUAS RESPECTIVAS OBSERVAÇÕES:\n", string.Join("\n", + from x in tuples + select string.Concat(x.Item1.ToString(), ": \"", x.Item2, "\"")))); + stringBuilder = null; + stringBuilder1 = null; + } + + public async Task ExecuteRunExtendedDialog(System.Windows.Controls.UserControl dialogControl, string hostName) + { + object obj = await DialogHost.Show(dialogControl, hostName, new DialogOpenedEventHandler(this, BaseViewModel.ExtendedOpenedEventHandler), new DialogClosingEventHandler(this, BaseViewModel.ExtendedClosingEventHandler)); + DialogHost.CloseDialogCommand.Execute(null, null); + return (obj == null ? false : (bool)obj); + } + + public async Task ExecuteRunExtendedDialogAdvertising(System.Windows.Controls.UserControl dialogControl, string hostName) + { + IEnumerable windows = System.Windows.Application.Current.Windows.OfType(); + List list = Extentions.FindVisualChildren(windows.SingleOrDefault((Window x) => x.IsActive)).ToList(); + list.ForEach((WebEditor x) => x.Visibility = Visibility.Collapsed); + await DialogHost.Show(dialogControl, hostName, new DialogOpenedEventHandler(this, BaseViewModel.ExtendedOpenedEventHandler), new DialogClosingEventHandler(this, BaseViewModel.ExtendedClosingEventHandlerArquivo)); + } + + public async Task> ExecuteRunExtendedDialogAnexar(System.Windows.Controls.UserControl dialogControl, string hostName) + { + IEnumerable windows = System.Windows.Application.Current.Windows.OfType(); + List list = Extentions.FindVisualChildren(windows.SingleOrDefault((Window x) => x.IsActive)).ToList(); + list.ForEach((WebEditor x) => x.Visibility = Visibility.Collapsed); + List arquivoDigitals = (List)await DialogHost.Show(dialogControl, hostName, new DialogOpenedEventHandler(this, BaseViewModel.ExtendedOpenedEventHandler), new DialogClosingEventHandler(this, BaseViewModel.ExtendedClosingEventHandlerArquivo)); + return arquivoDigitals; + } + + public async Task ExecuteRunExtendedDialogCopia(System.Windows.Controls.UserControl dialogControl, string hostName) + { + Copia copium; + IEnumerable windows = System.Windows.Application.Current.Windows.OfType(); + List list = Extentions.FindVisualChildren(windows.SingleOrDefault((Window x) => x.IsActive)).ToList(); + list.ForEach((WebEditor x) => x.Visibility = Visibility.Collapsed); + object obj = await DialogHost.Show(dialogControl, hostName, new DialogOpenedEventHandler(this, BaseViewModel.ExtendedOpenedEventHandler), new DialogClosingEventHandler(this, BaseViewModel.ExtendedClosingEventHandler)); + if (!(obj is bool)) + { + copium = (Copia)obj; + } + else + { + copium = null; + } + return copium; + } + + public async Task ExecuteRunExtendedDialogCopiarCliente(System.Windows.Controls.UserControl dialogControl, string hostName) + { + Cliente cliente; + IEnumerable windows = System.Windows.Application.Current.Windows.OfType(); + List list = Extentions.FindVisualChildren(windows.SingleOrDefault((Window x) => x.IsActive)).ToList(); + list.ForEach((WebEditor x) => x.Visibility = Visibility.Collapsed); + object obj = await DialogHost.Show(dialogControl, hostName, new DialogOpenedEventHandler(this, BaseViewModel.ExtendedOpenedEventHandler), new DialogClosingEventHandler(this, BaseViewModel.ExtendedClosingEventHandler)); + if (!(obj is bool)) + { + cliente = (Cliente)obj; + } + else + { + cliente = null; + } + return cliente; + } + + public async Task> ExecuteRunExtendedDialogExtratoComissao(System.Windows.Controls.UserControl dialogControl, string hostName) + { + List notaFiscals; + IEnumerable windows = System.Windows.Application.Current.Windows.OfType(); + List list = Extentions.FindVisualChildren(windows.SingleOrDefault((Window x) => x.IsActive)).ToList(); + list.ForEach((WebEditor x) => x.Visibility = Visibility.Collapsed); + object obj = await DialogHost.Show(dialogControl, hostName, new DialogOpenedEventHandler(this, BaseViewModel.ExtendedOpenedEventHandler), new DialogClosingEventHandler(this, BaseViewModel.ExtendedClosingEventHandler)); + if (!(obj is bool)) + { + notaFiscals = (List)obj; + } + else + { + notaFiscals = null; + } + return notaFiscals; + } + + public async Task ExecuteRunExtendedDialogInstalacoes(System.Windows.Controls.UserControl dialogControl, string hostName) + { + Instalacao instalacao; + IEnumerable windows = System.Windows.Application.Current.Windows.OfType(); + List list = Extentions.FindVisualChildren(windows.SingleOrDefault((Window x) => x.IsActive)).ToList(); + list.ForEach((WebEditor x) => x.Visibility = Visibility.Collapsed); + object obj = await DialogHost.Show(dialogControl, hostName, new DialogOpenedEventHandler(this, BaseViewModel.ExtendedOpenedEventHandler), new DialogClosingEventHandler(this, BaseViewModel.ExtendedClosingEventHandler)); + object obj1 = obj; + if (obj1 == null || obj1 is bool && !(bool)obj1) + { + instalacao = null; + } + else + { + instalacao = (Instalacao)obj; + } + return instalacao; + } + + public async Task ExecuteRunExtendedDialogPrint(System.Windows.Controls.UserControl dialogControl, string hostName) + { + IEnumerable windows = System.Windows.Application.Current.Windows.OfType(); + List list = Extentions.FindVisualChildren(windows.SingleOrDefault((Window x) => x.IsActive)).ToList(); + list.ForEach((WebEditor x) => x.Visibility = Visibility.Collapsed); + ConfiguracaoImpressao configuracaoImpressao = (ConfiguracaoImpressao)await DialogHost.Show(dialogControl, hostName, new DialogOpenedEventHandler(this, BaseViewModel.ExtendedOpenedEventHandler), new DialogClosingEventHandler(this, BaseViewModel.ExtendedClosingEventHandler)); + return configuracaoImpressao; + } + + public async Task ExecuteRunExtendedDialogProspeccao(System.Windows.Controls.UserControl dialogControl, string hostName) + { + Prospeccao prospeccao; + IEnumerable windows = System.Windows.Application.Current.Windows.OfType(); + List list = Extentions.FindVisualChildren(windows.SingleOrDefault((Window x) => x.IsActive)).ToList(); + list.ForEach((WebEditor x) => x.Visibility = Visibility.Collapsed); + object obj = await DialogHost.Show(dialogControl, hostName, new DialogOpenedEventHandler(this, BaseViewModel.ExtendedOpenedEventHandler), new DialogClosingEventHandler(this, BaseViewModel.ExtendedClosingEventHandler)); + if (!(obj is bool)) + { + prospeccao = (Prospeccao)obj; + } + else + { + prospeccao = null; + } + return prospeccao; + } + + public async Task ExecuteRunExtendedDialogSenha(System.Windows.Controls.UserControl dialogControl, string hostName) + { + IEnumerable windows = System.Windows.Application.Current.Windows.OfType(); + List list = Extentions.FindVisualChildren(windows.SingleOrDefault((Window x) => x.IsActive)).ToList(); + list.ForEach((WebEditor x) => x.Visibility = Visibility.Collapsed); + bool? nullable = (bool?)await DialogHost.Show(dialogControl, hostName, new DialogOpenedEventHandler(this, BaseViewModel.ExtendedOpenedEventHandler), new DialogClosingEventHandler(this, BaseViewModel.ExtendedClosingEventHandler)); + return nullable; + } + + public void ExtendedClosingEventHandler(object sender, DialogClosingEventArgs eventArgs) + { + this.IsEnabled = true; + Window window = System.Windows.Application.Current.Windows.OfType().SingleOrDefault((Window x) => x.IsActive); + Extentions.FindVisualChildren(window).ToList().ForEach((WebEditor x) => { + if (!x.IsReadOnly) + { + x.Visibility = Visibility.Visible; + } + }); + Extentions.FindVisualChildren(window).Any((DrawerHost x) => { + if (x.get_IsLeftDrawerOpen() || x.get_IsBottomDrawerOpen() || x.get_IsRightDrawerOpen()) + { + return true; + } + return x.get_IsTopDrawerOpen(); + }); + } + + public void ExtendedClosingEventHandlerArquivo(object sender, DialogClosingEventArgs eventArgs) + { + this.IsEnabled = true; + Extentions.FindVisualChildren(System.Windows.Application.Current.Windows.OfType().SingleOrDefault((Window x) => x.IsActive)).Any((DrawerHost x) => { + if (x.get_IsLeftDrawerOpen() || x.get_IsBottomDrawerOpen() || x.get_IsRightDrawerOpen()) + { + return true; + } + return x.get_IsTopDrawerOpen(); + }); + } + + public void ExtendedOpenedEventHandler(object sender, DialogOpenedEventArgs eventargs) + { + this.IsEnabled = false; + } + + internal DialogHost GetHost() + { + DialogHost dialogHost = Extentions.FindVisualChildren(System.Windows.Application.Current.Windows.OfType().SingleOrDefault((Window x) => x.IsActive)).FirstOrDefault(); + if (dialogHost == null) + { + foreach (Window window in System.Windows.Application.Current.Windows.OfType()) + { + dialogHost = Extentions.FindVisualChildren(window).FirstOrDefault(); + if (dialogHost == null || dialogHost.get_IsOpen()) + { + continue; + } + if (dialogHost != null && dialogHost.get_IsOpen()) + { + return null; + } + return dialogHost; + } + } + if (dialogHost != null && dialogHost.get_IsOpen()) + { + return null; + } + return dialogHost; + } + + public double GetWindowHeight() + { + return System.Windows.Application.Current.Windows.OfType().SingleOrDefault((Window x) => x.IsActive).ActualHeight; + } + + private void HabilitarMenu(bool enable) + { + this.EnableMainMenu = enable; + } + + private void HabilitarMenuSecundario(bool enable) + { + this.EnableMenu = enable; + } + + public async Task ImprimirFornecedor(List fornecedores) + { + string str; + string str1; + string str2; + string str3; + string str4; + string str5; + ParcelaServico parcelaServico = new ParcelaServico(); + string str6 = "RELATÓRIO DE FORNECEDORES"; + str6 = string.Concat(str6, "
RELATÓRIO DE FORNECEDORES

"); + str6 = string.Concat(str6, "
"); + str6 = string.Concat(str6, ""); + int num = 1; + str6 = string.Concat(str6, ""); + str6 = string.Concat(str6, ""); + str6 = string.Concat(str6, ""); + str6 = string.Concat(str6, ""); + str6 = string.Concat(str6, ""); + str6 = string.Concat(str6, ""); + str6 = string.Concat(str6, ""); + foreach (Fornecedor fornecedore in fornecedores) + { + string[] nome = new string[] { str6, ""; + str6 = string.Concat(nome); + string[] documento = new string[] { str6, ""; + str6 = string.Concat(documento); + string[] endereco = new string[] { str6, ""; + str6 = string.Concat(endereco); + string[] email = new string[] { str6, ""; + str6 = string.Concat(email); + if (fornecedore.get_Documento() == null) + { + str4 = ""; + } + else + { + str4 = (Gestor.Common.Validation.ValidationHelper.OnlyNumber(fornecedore.get_Documento()).Length > 11 ? "JURÍDICA" : "FÍSICA"); + } + string str7 = str4; + string[] strArrays = new string[] { str6, ""; + str6 = string.Concat(strArrays); + if (num != 1) + { + num++; + } + else + { + num = 0; + } + } + DateTime networkTime = Funcoes.GetNetworkTime(); + string nome1 = Recursos.Usuario.get_Nome(); + str6 = string.Concat(str6, "
NOMECPF/CNPJENDEREÇOE-MAILTIPO PESSOA
"; + nome[4] = fornecedore.get_Nome(); + nome[5] = ""; + documento[4] = fornecedore.get_Documento(); + documento[5] = ""; + endereco[4] = fornecedore.get_Endereco(); + endereco[5] = ""; + email[4] = fornecedore.get_Email(); + email[5] = ""; + strArrays[4] = str7; + strArrays[5] = "
"); + str6 = string.Concat(str6, string.Format("Emitido pelo usuário: {0}, data e hora: {1}.", nome1, networkTime)); + str6 = string.Concat(str6, ""); + string tempPath = Path.GetTempPath(); + string str8 = string.Format("{0}FORNECEDORES_{1:ddMMyyyyhhmmss}.html", tempPath, networkTime); + StreamWriter streamWriter = new StreamWriter(str8, true, Encoding.UTF8); + streamWriter.Write(str6); + streamWriter.Close(); + Process.Start(str8); + } + + private Gestor.Application.Model.Configuracoes LoadConfiguracoes() + { + this.CriarConfiguracaoPadrao("config.json"); + return JsonConvert.DeserializeObject(File.ReadAllText("config.json")); + } + + private async Task LoadDialogAdertisingPromo() + { + DialogAdvertising dialogAdvertising; + object empty; + Gestor.Application.Model.Configuracoes configuraco = this.LoadConfiguracoes(); + JObject jObject = await this.LoadJsonAdvertising(Address.JsonPromo()); + if (jObject != null) + { + JToken item = jObject.get_Item("Imagem"); + if (item != null) + { + empty = Extensions.Value(item); + } + else + { + empty = null; + } + if (empty == null) + { + empty = string.Empty; + } + string str = (string)empty; + if (configuraco.LinkPromo == str || configuraco.NaoverPromo) + { + dialogAdvertising = null; + } + else + { + dialogAdvertising = new DialogAdvertising(jObject, true); + } + } + else + { + dialogAdvertising = null; + } + configuraco = null; + return dialogAdvertising; + } + + public void Loading(bool isLoading) + { + Grid progressRing = App.ProgressRing; + if (progressRing == null) + { + return; + } + Dispatcher dispatcher = progressRing.Dispatcher; + if (dispatcher == null) + { + return; + } + dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => this.LoadingThread(isLoading))); + } + + public void LoadingThread(bool isLoading) + { + this.IsVisible = (isLoading ? Visibility.Collapsed : Visibility.Visible); + App.ProgressRing.Visibility = (isLoading ? Visibility.Visible : Visibility.Collapsed); + this.IsEnabled = !isLoading; + } + + private async Task LoadJsonAdvertising(Uri location) + { + JObject jObject; + JObject jObject1; + using (HttpClient httpClient = new HttpClient()) + { + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; + httpClient.set_Timeout(TimeSpan.FromSeconds(20)); + HttpResponseMessage async = await httpClient.GetAsync(location); + if (!async.get_IsSuccessStatusCode()) + { + jObject1 = null; + } + else + { + jObject1 = JObject.Parse(await async.get_Content().ReadAsStringAsync()); + } + jObject = jObject1; + } + return jObject; + } + + public void OnPropertyChanged([CallerMemberName] string name = "") + { + PropertyChangedEventHandler propertyChangedEventHandler = this.PropertyChanged; + if (propertyChangedEventHandler == null) + { + return; + } + propertyChangedEventHandler(this, new PropertyChangedEventArgs(name)); + } + + public bool Permissao(TipoTela tipoTela) + { + if (Recursos.Usuario.get_Id() == 0) + { + return false; + } + PermissaoUsuario permissaoUsuario = this.ServicoPermissUsuario.BuscarPermissao(Recursos.Usuario, tipoTela); + if (permissaoUsuario == null) + { + return true; + } + return permissaoUsuario.get_Consultar(); + } + + public async Task PermissaoArquivoDigital(TipoArquivoDigital tela) + { + bool flag; + bool flag1; + this.EnableIncluir = false; + this.EnableExcluir = false; + if (Recursos.Usuario.get_Id() != 0) + { + PermissaoArquivoDigital permissaoArquivoDigital = await this.ServicoPermissArquivoDigital.VerificarPermissao(Recursos.Usuario, tela); + BaseViewModel baseViewModel = this; + flag = (permissaoArquivoDigital != null ? permissaoArquivoDigital.get_Incluir() : true); + baseViewModel._incluirPermissEnabled = flag; + BaseViewModel baseViewModel1 = this; + flag1 = (permissaoArquivoDigital != null ? permissaoArquivoDigital.get_Excluir() : true); + baseViewModel1._excluirPermissEnabled = flag1; + } + } + + public async Task PermissaoConsultar(TipoTela tela) + { + bool flag; + bool consultar; + if (Recursos.Usuario.get_Id() != 0) + { + PermissaoUsuario permissaoUsuario = await this.ServicoPermissUsuario.VerificarPermissao(Recursos.Usuario, tela); + if (permissaoUsuario != null) + { + consultar = permissaoUsuario.get_Consultar(); + } + else + { + consultar = true; + } + flag = consultar; + } + else + { + flag = true; + } + return flag; + } + + public async Task PermissaoTela(TipoTela tela) + { + bool flag; + bool flag1; + bool flag2; + bool flag3; + bool flag4; + bool flag5; + this.EnableIncluir = false; + this.EnableAlterar = false; + this.EnableExcluir = false; + if (Recursos.Usuario.get_Id() != 0) + { + PermissaoUsuario permissaoUsuario = await this.ServicoPermissUsuario.VerificarPermissao(Recursos.Usuario, tela); + if (tela == 5) + { + BaseViewModel baseViewModel = this; + flag3 = (permissaoUsuario != null ? permissaoUsuario.get_Incluir() : true); + baseViewModel.IncluirParcelaEnabled = flag3; + BaseViewModel baseViewModel1 = this; + flag4 = (permissaoUsuario != null ? permissaoUsuario.get_Alterar() : true); + baseViewModel1.AlterarParcelaEnabled = flag4; + BaseViewModel baseViewModel2 = this; + flag5 = (permissaoUsuario != null ? permissaoUsuario.get_Excluir() : true); + baseViewModel2.ExcluirParcelaEnabled = flag5; + } + else if (tela == 24 || tela == 26 || tela == 29 || tela == 28 || tela == 27) + { + this._incluirPermissEnabled = true; + this._alterarPermissEnabled = true; + this._excluirPermissEnabled = true; + } + else + { + BaseViewModel baseViewModel3 = this; + flag = (permissaoUsuario != null ? permissaoUsuario.get_Incluir() : true); + baseViewModel3._incluirPermissEnabled = flag; + BaseViewModel baseViewModel4 = this; + flag1 = (permissaoUsuario != null ? permissaoUsuario.get_Alterar() : true); + baseViewModel4._alterarPermissEnabled = flag1; + BaseViewModel baseViewModel5 = this; + flag2 = (permissaoUsuario != null ? permissaoUsuario.get_Excluir() : true); + baseViewModel5._excluirPermissEnabled = flag2; + } + } + } + + public void RegistrarAcao(string descricao, long entidadeId, TipoTela? tela = null, object obs = null) + { + RegistroAcao registroAcao = new RegistroAcao(); + registroAcao.set_Descricao(descricao); + registroAcao.set_EntidadeId(entidadeId); + registroAcao.set_Tela(tela); + (new ApoliceServico()).SalvarAcao(registroAcao, obs); + } + + public void RegistrarAcao(string descricao, Relatorio? relatorio, object obs = null) + { + RegistroAcao registroAcao = new RegistroAcao(); + registroAcao.set_Relatorio(relatorio); + registroAcao.set_Descricao(descricao); + (new ApoliceServico()).SalvarAcao(registroAcao, obs); + } + + public bool Restricao(TipoRestricao tipoRestricao) + { + if (Recursos.Usuario.get_Id() == 0) + { + return false; + } + RestricaoUsuario restricaoUsuario = this.ServicoRestriUsuario.BuscarRestricao(Recursos.Usuario, tipoRestricao); + if (restricaoUsuario == null) + { + return false; + } + return restricaoUsuario.get_Restricao(); + } + + public async Task Salvar(IndiceArquivoDigital indice) + { + string str; + bool arquivo; + Guid guid; + if (indice.get_Id() != 0) + { + Gestor.Model.Domain.Common.ArquivoDigital arquivoDigital = await this.ArquivoDigitalServico.BuscarPorId(indice.get_IdArquivoDigital(), indice.get_Bd()); + if (arquivoDigital != null) + { + arquivo = arquivoDigital.get_Arquivo(); + } + else + { + arquivo = false; + } + if (!arquivo || arquivoDigital.get_Extensao() == null) + { + str = null; + } + else + { + string tempPath = Path.GetTempPath(); + Guid? azureGuid = arquivoDigital.get_AzureGuid(); + guid = (azureGuid.HasValue ? azureGuid.GetValueOrDefault() : Guid.NewGuid()); + string str1 = string.Format("{0}{1}{2}", tempPath, guid, Gestor.Common.Validation.ValidationHelper.GetDefaultExtension(arquivoDigital.get_Extensao())); + using (BinaryWriter binaryWriter = new BinaryWriter(File.Open(str1, FileMode.Create))) + { + binaryWriter.Write(arquivoDigital.get_Arquivo()); + } + str = str1; + } + } + else + { + str = null; + } + return str; + } + + public async Task SalvarAttachments(List arquivos, TipoArquivoDigital tipoAd, long id) + { + bool flag; + if (arquivos == null || arquivos.Count == 0) + { + flag = false; + } + else + { + arquivos.ForEach((Gestor.Model.Domain.Common.ArquivoDigital x) => { + x.set_IdCliente((tipoAd == 1 ? id : (long)0)); + x.set_IdDocumento((tipoAd == 2 ? id : (long)0)); + x.set_IdParcela((tipoAd == 3 ? id : (long)0)); + x.set_IdItem((tipoAd == 4 ? id : (long)0)); + x.set_IdSinistro((tipoAd == 5 ? id : (long)0)); + x.set_IdVendedor((tipoAd == 6 ? id : (long)0)); + x.set_IdUsuario((tipoAd == 12 ? id : (long)0)); + x.set_IdSeguradora((tipoAd == 8 ? id : (long)0)); + x.set_IdExtrato((tipoAd == 7 ? id : (long)0)); + x.set_IdLancamento((tipoAd == 9 ? id : (long)0)); + x.set_IdFornecedor((tipoAd == 10 ? id : (long)0)); + x.set_IdProspeccao((tipoAd == 11 ? id : (long)0)); + x.set_IdSocio((tipoAd == 14 ? id : (long)0)); + x.set_IdTarefa((tipoAd == 15 ? id : (long)0)); + x.set_IdNotaFiscal((tipoAd == 16 ? id : (long)0)); + x.set_IdEstipulante((tipoAd == 17 ? id : (long)0)); + x.set_IdEmpresa(Recursos.Usuario.get_IdEmpresa()); + }); + switch (tipoAd) + { + default: + { + break; + } + } + await this.ArquivoDigitalServico.Insert(arquivos); + flag = (this.ArquivoDigitalServico.Sucesso ? true : false); + } + return flag; + } + + public async Task>> SalvarProspeccao(Prospeccao prospecao) + { + List> keyValuePairs; + bool count; + string str; + List anexos; + Prospeccao prospeccao; + List> keyValuePairs1 = prospecao.Validate(); + if (keyValuePairs1.Count <= 0) + { + anexos = prospecao.get_Anexos(); + if (prospecao.get_Tarefa().get_Id() == 0) + { + prospecao.get_Tarefa().set_Cliente(prospecao.get_Nome()); + Tarefa tarefa = prospecao.get_Tarefa(); + DateTime? vigenciaFinal = prospecao.get_VigenciaFinal(); + if (vigenciaFinal.HasValue) + { + str = vigenciaFinal.GetValueOrDefault().ToString("d"); + } + else + { + str = null; + } + tarefa.set_Titulo(string.Concat("PROSPECÇÃO ", str)); + prospecao.get_Tarefa().set_Referencia(prospecao.get_Item()); + Tarefa tarefa1 = prospecao.get_Tarefa(); + object[] nome = new object[] { Recursos.Usuario.get_Nome(), Funcoes.GetNetworkTime(), Environment.NewLine, prospecao.get_Observacao() }; + tarefa1.set_Descricao(string.Format("{0} {1:g} {2}{3}", nome)); + } + prospeccao = await (new ProspeccaoServico()).Salvar(prospecao); + List arquivoDigitals = anexos; + if (arquivoDigitals != null) + { + count = arquivoDigitals.Count > 0; + } + else + { + count = false; + } + if (count) + { + await this.SalvarAttachments(anexos, 11, prospeccao.get_Id()); + } + if (prospeccao.get_Tarefa() != null && prospecao.get_AbrirTarefa() && prospeccao != null && prospeccao.get_Id() > (long)0) + { + Tarefa tarefa2 = prospeccao.get_Tarefa(); + this.ShowDrawer(new TarefaDrawer(tarefa2, true), 0, false); + } + keyValuePairs = null; + } + else + { + keyValuePairs = keyValuePairs1; + } + anexos = null; + prospeccao = null; + return keyValuePairs; + } + + internal async Task ShowCopiaDialog(Copia copia) + { + Copia copium; + string str; + DialogHost host = this.GetHost(); + if (host == null || !host.get_IsOpen()) + { + DialogCopia dialogCopium = new DialogCopia(copia); + BaseViewModel baseViewModel = this; + DialogCopia dialogCopium1 = dialogCopium; + str = (host != null ? host.get_Identifier().ToString() : "RootDialog"); + copium = await baseViewModel.ExecuteRunExtendedDialogCopia(dialogCopium1, str); + } + else + { + copium = null; + } + return copium; + } + + internal async Task ShowCopiarCliente() + { + Cliente cliente; + string str; + DialogHost host = this.GetHost(); + if (host == null || !host.get_IsOpen()) + { + DialogCopiarCliente dialogCopiarCliente = new DialogCopiarCliente(); + BaseViewModel baseViewModel = this; + DialogCopiarCliente dialogCopiarCliente1 = dialogCopiarCliente; + str = (host != null ? host.get_Identifier().ToString() : "RootDialog"); + cliente = await baseViewModel.ExecuteRunExtendedDialogCopiarCliente(dialogCopiarCliente1, str); + } + else + { + cliente = null; + } + return cliente; + } + + internal async Task ShowDialogAdvertising(bool root = false) + { + string str; + try + { + DialogHost host = null; + if (!root) + { + host = this.GetHost(); + if (host != null && host.get_IsOpen()) + { + return; + } + } + DialogAdvertising dialogAdvertising = await this.CreateDialogAdvertising(); + if (dialogAdvertising != null) + { + BaseViewModel baseViewModel = this; + DialogAdvertising dialogAdvertising1 = dialogAdvertising; + str = (host != null ? host.get_Identifier().ToString() : "RootDialog"); + await baseViewModel.ExecuteRunExtendedDialogAdvertising(dialogAdvertising1, str); + host = null; + } + else + { + return; + } + } + catch + { + } + } + + internal async Task> ShowDialogAnexar(List arquivos, bool root = false) + { + List arquivoDigitals; + string str; + DialogHost host = null; + if (!root) + { + host = this.GetHost(); + if (host != null && host.get_IsOpen()) + { + arquivoDigitals = arquivos; + return arquivoDigitals; + } + } + DialogAnexar dialogAnexar = new DialogAnexar(arquivos); + BaseViewModel baseViewModel = this; + DialogAnexar dialogAnexar1 = dialogAnexar; + str = (host != null ? host.get_Identifier().ToString() : "RootDialog"); + arquivoDigitals = await baseViewModel.ExecuteRunExtendedDialogAnexar(dialogAnexar1, str); + return arquivoDigitals; + } + + internal async Task ShowDialogPrint(Relatorio relatorio, Type tipo) + { + ConfiguracaoImpressao configuracaoImpressao; + string str; + DialogHost host = this.GetHost(); + if (host == null || !host.get_IsOpen()) + { + DialogPrint dialogPrint = new DialogPrint(relatorio, tipo); + BaseViewModel baseViewModel = this; + DialogPrint dialogPrint1 = dialogPrint; + str = (host != null ? host.get_Identifier().ToString() : "RootDialog"); + configuracaoImpressao = await baseViewModel.ExecuteRunExtendedDialogPrint(dialogPrint1, str); + } + else + { + configuracaoImpressao = null; + } + return configuracaoImpressao; + } + + internal void ShowDrawer(object content, int position, bool close = true) + { + Window window = System.Windows.Application.Current.Windows.OfType().SingleOrDefault((Window x) => x.IsActive); + DrawerHost drawerHost = Extentions.FindVisualChildren(window).FirstOrDefault(); + Extentions.FindVisualChildren(window).ToList().ForEach((WebEditor x) => x.Visibility = Visibility.Collapsed); + if (drawerHost == null) + { + return; + } + switch (position) + { + case 1: + { + drawerHost.set_TopDrawerContent(content); + drawerHost.set_IsTopDrawerOpen(true); + drawerHost.set_TopDrawerCloseOnClickAway(close); + return; + } + case 2: + { + drawerHost.set_LeftDrawerContent(content); + drawerHost.set_IsLeftDrawerOpen(true); + drawerHost.set_LeftDrawerCloseOnClickAway(close); + return; + } + case 3: + { + drawerHost.set_BottomDrawerContent(content); + drawerHost.set_IsBottomDrawerOpen(true); + drawerHost.set_BottomDrawerCloseOnClickAway(close); + return; + } + default: + { + if (!drawerHost.get_IsRightDrawerOpen() || drawerHost.get_RightDrawerContent() != null && !(drawerHost.get_RightDrawerContent().GetType() != content.GetType())) + { + break; + } + else + { + drawerHost.set_LeftDrawerContent(content); + drawerHost.set_IsLeftDrawerOpen(true); + drawerHost.set_LeftDrawerCloseOnClickAway(close); + return; + } + } + } + drawerHost.set_IsRightDrawerOpen(true); + drawerHost.set_RightDrawerContent(content); + drawerHost.set_RightDrawerCloseOnClickAway(close); + } + + internal async Task> ShowExtratoComissaoDialog(List seguradoras) + { + List notaFiscals; + string str; + DialogHost host = this.GetHost(); + if (host == null || !host.get_IsOpen()) + { + DialogExtratoComissao dialogExtratoComissao = new DialogExtratoComissao(seguradoras); + BaseViewModel baseViewModel = this; + DialogExtratoComissao dialogExtratoComissao1 = dialogExtratoComissao; + str = (host != null ? host.get_Identifier().ToString() : "RootDialog"); + notaFiscals = await baseViewModel.ExecuteRunExtendedDialogExtratoComissao(dialogExtratoComissao1, str); + } + else + { + notaFiscals = null; + } + return notaFiscals; + } + + internal async Task ShowInstalacoes(List instalacoes) + { + Instalacao instalacao; + string str; + DialogHost host = this.GetHost(); + if (host == null || !host.get_IsOpen()) + { + DialogInstalacoes dialogInstalaco = new DialogInstalacoes(instalacoes); + BaseViewModel baseViewModel = this; + DialogInstalacoes dialogInstalaco1 = dialogInstalaco; + str = (host != null ? host.get_Identifier().ToString() : "RootDialog"); + instalacao = await baseViewModel.ExecuteRunExtendedDialogInstalacoes(dialogInstalaco1, str); + } + else + { + instalacao = null; + } + return instalacao; + } + + internal async Task ShowMedalha(int liquido, int comissao, int resultado, int media) + { + string str; + DialogHost host = this.GetHost(); + if (host == null || !host.get_IsOpen()) + { + DialogMedalha dialogMedalha = new DialogMedalha(liquido, comissao, resultado, media); + BaseViewModel baseViewModel = this; + DialogMedalha dialogMedalha1 = dialogMedalha; + str = (host != null ? host.get_Identifier().ToString() : "RootDialog"); + await baseViewModel.ExecuteRunExtendedDialog(dialogMedalha1, str); + } + } + + internal async Task ShowMessage(string message, string accept = "OK", string cancel = "", bool root = false) + { + bool flag; + string str; + DialogHost host = null; + if (!root) + { + host = this.GetHost(); + if (host == null) + { + flag = false; + return flag; + } + } + DefaultDialog defaultDialog = new DefaultDialog(); + DialogViewModel dialogViewModel = new DialogViewModel() + { + AcceptContent = accept, + CancelContent = cancel, + Message = message + }; + defaultDialog.DataContext = dialogViewModel; + DefaultDialog defaultDialog1 = defaultDialog; + BaseViewModel baseViewModel = this; + DefaultDialog defaultDialog2 = defaultDialog1; + str = (host != null ? host.get_Identifier().ToString() : "RootDialog"); + flag = await baseViewModel.ExecuteRunExtendedDialog(defaultDialog2, str); + return flag; + } + + internal async Task ShowMessage(List> pairs, string message, string accept, string cancel = "") + { + bool flag; + string str; + DialogHost host = this.GetHost(); + if (host == null || !host.get_IsOpen()) + { + ErrorDialog errorDialog = new ErrorDialog(); + ErrorDialogViewModel errorDialogViewModel = new ErrorDialogViewModel(); + List> keyValuePairs = pairs; + errorDialogViewModel.Erros = ( + from pair in keyValuePairs + select new KeyValuePair((pair.Key.Contains("|") ? pair.Key.Substring(pair.Key.IndexOf("|", StringComparison.Ordinal) + 1) : pair.Key), pair.Value)).ToList>(); + errorDialogViewModel.AcceptContent = accept; + errorDialogViewModel.CancelContent = cancel; + errorDialogViewModel.Message = message; + errorDialog.DataContext = errorDialogViewModel; + ErrorDialog errorDialog1 = errorDialog; + BaseViewModel baseViewModel = this; + ErrorDialog errorDialog2 = errorDialog1; + str = (host != null ? host.get_Identifier().ToString() : "RootDialog"); + flag = await baseViewModel.ExecuteRunExtendedDialog(errorDialog2, str); + } + else + { + flag = false; + } + return flag; + } + + internal async Task ShowProspeccaoDialog(Prospeccao prospecao) + { + Prospeccao prospeccao; + string str; + DialogHost host = this.GetHost(); + if (host == null || !host.get_IsOpen()) + { + ProspeccaoDialog prospeccaoDialog = new ProspeccaoDialog(prospecao); + BaseViewModel baseViewModel = this; + ProspeccaoDialog prospeccaoDialog1 = prospeccaoDialog; + str = (host != null ? host.get_Identifier().ToString() : "RootDialog"); + prospeccao = await baseViewModel.ExecuteRunExtendedDialogProspeccao(prospeccaoDialog1, str); + } + else + { + prospeccao = null; + } + return prospeccao; + } + + internal async Task ShowSenha(string mensagem) + { + bool? nullable; + string str; + DialogHost host = this.GetHost(); + if (host == null || !host.get_IsOpen()) + { + DialogSenhaAdm dialogSenhaAdm = new DialogSenhaAdm(mensagem); + BaseViewModel baseViewModel = this; + DialogSenhaAdm dialogSenhaAdm1 = dialogSenhaAdm; + str = (host != null ? host.get_Identifier().ToString() : "RootDialog"); + nullable = await baseViewModel.ExecuteRunExtendedDialogSenha(dialogSenhaAdm1, str); + } + else + { + nullable = new bool?(false); + } + return nullable; + } + + public void ToggleSnackBar(string message, bool active = true) + { + Snackbar snackbar = Extentions.FindVisualChildren(System.Windows.Application.Current.Windows.OfType().SingleOrDefault((Window x) => x.IsActive)).FirstOrDefault(); + if (snackbar == null) + { + return; + } + snackbar.get_Message().Content = message; + snackbar.set_IsActive(active); + if (!active) + { + return; + } + Task.Factory.StartNew(new Action(this.CloseSlackBar)); + } + + public async Task> ValidateAttachment(List attachments, List files) + { + char chr; + bool flag; + string lower; + object obj; + string upper = string.Concat("Os Arquivos Abaixo não podem ser anexados pois não possuem Formatos válidos, são maiores que o permitido ou já foram anexados!", Environment.NewLine, Environment.NewLine).ToUpper(); + List strs = new List(); + bool flag1 = false; + foreach (string file in files) + { + int num = 0; + try + { + flag = (attachments == null ? false : attachments.Exists((Gestor.Model.Domain.Common.ArquivoDigital a) => { + string str; + string str1 = Gestor.Common.Validation.ValidationHelper.RemoveDiacritics(a.get_Descricao().ToUpper()); + string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(file); + if (fileNameWithoutExtension != null) + { + str = Gestor.Common.Validation.ValidationHelper.RemoveDiacritics(fileNameWithoutExtension.ToUpper()); + } + else + { + str = null; + } + return str1 == str; + })); + if (!flag) + { + FileInfo fileInfo = new FileInfo(file); + if (fileInfo.Length > (long)1024) + { + long length = fileInfo.Length / (long)1024; + obj = (Recursos.Empresa.get_MaxFileSize() > 0 ? Recursos.Empresa.get_MaxFileSize() : 14336); + if (length > (long)obj) + { + upper = string.Concat(upper, Path.GetFileName(file)); + flag1 = true; + continue; + } + } + string extension = Path.GetExtension(file); + if (extension != null) + { + lower = extension.ToLower(); + } + else + { + lower = null; + } + string str2 = lower; + if (str2 != null) + { + int length1 = str2.Length; + if (length1 == 4) + { + chr = str2[1]; + if (chr <= 't') + { + switch (chr) + { + case 'a': + { + if (str2 == ".amr") + { + break; + } + goto Label1; + } + case 'b': + { + if (str2 == ".bmp") + { + break; + } + goto Label1; + } + case 'c': + { + goto Label1; + } + case 'd': + { + if (str2 == ".doc") + { + break; + } + goto Label1; + } + case 'e': + { + if (str2 == ".eml") + { + break; + } + goto Label1; + } + default: + { + switch (chr) + { + case 'j': + { + if (str2 == ".jpg") + { + goto Label2; + } + goto Label1; + } + case 'm': + { + if (str2 == ".msg") + { + goto Label2; + } + goto Label1; + } + case 'o': + { + if (str2 == ".ogg") + { + goto Label2; + } + goto Label1; + } + case 'p': + { + if (str2 == ".png" || str2 == ".pdf") + { + goto Label2; + } + goto Label1; + } + case 'r': + { + if (str2 == ".rar") + { + goto Label2; + } + goto Label1; + } + case 't': + { + if (str2 == ".txt") + { + goto Label2; + } + goto Label1; + } + default: + { + goto Label1; + } + } + break; + } + } + } + else if (chr == 'x') + { + if (str2 == ".xls") + { + goto Label2; + } + goto Label1; + } + else if (chr == 'z') + { + if (str2 == ".zip") + { + goto Label2; + } + goto Label1; + } + else + { + goto Label1; + } + } + else if (length1 == 5) + { + chr = str2[2]; + switch (chr) + { + case 'l': + { + if (str2 == ".xlsx") + { + break; + } + goto Label1; + } + case 'm': + case 'n': + { + goto Label1; + } + case 'o': + { + if (str2 == ".docx") + { + break; + } + goto Label1; + } + case 'p': + { + if (str2 == ".jpeg") + { + break; + } + goto Label1; + } + default: + { + if (chr != 's') + { + goto Label1; + } + else if (str2 == ".json") + { + break; + } + else + { + goto Label1; + } + } + } + } + else + { + goto Label1; + } + Label2: + strs.Add(file); + goto Label0; + } + Label1: + upper = string.Concat(upper, Path.GetFileName(file)); + Label0: + } + else + { + upper = string.Concat(upper, Path.GetFileName(file)); + flag1 = true; + continue; + } + } + catch (Exception exception) + { + num = 1; + } + if (num != 1) + { + continue; + } + string[] newLine = new string[] { "NÃO FOI POSSÍVEL CARREGAR O ARQUIVO ", file, ".", Environment.NewLine, "O ARQUIVO ESTÁ INACESSÍVEL OU SENDO UTILIZADO POR OUTRO PROCESSO." }; + await this.ShowMessage(string.Concat(newLine), "OK", "", false); + } + if (flag1) + { + await this.ShowMessage(string.Concat(upper, Environment.NewLine, Environment.NewLine, "Favor Corrija antes de tentar novamente.").ToUpper(), "OK", "", false); + } + return strs; + } + + public async Task VerificarAcesso(long id) + { + string str; + string str1; + string str2 = null; + Usuario usuario = await (new UsuarioServico()).BuscarUsuarioPorId(id); + if (usuario != null) + { + List strs = new List(); + List strs1 = new List() + { + "SEGUNDAS-FEIRAS", + "TERÇAS-FEIRAS", + "QUARTAS-FEIRAS", + "QUINTAS-FEIRAS", + "SEXTAS-FEIRAS", + "SÁBADOS", + "DOMINGOS" + }; + List strs2 = strs1; + bool? segunda = usuario.get_Segunda(); + if (!segunda.GetValueOrDefault() & segunda.HasValue) + { + strs.Add("SEGUNDAS-FEIRAS"); + strs2.Remove("SEGUNDAS-FEIRAS"); + } + segunda = usuario.get_Terca(); + if (!segunda.GetValueOrDefault() & segunda.HasValue) + { + strs.Add("TERÇAS-FEIRAS"); + strs2.Remove("TERÇAS-FEIRAS"); + } + segunda = usuario.get_Quarta(); + if (!segunda.GetValueOrDefault() & segunda.HasValue) + { + strs.Add("QUARTAS-FEIRAS"); + strs2.Remove("QUARTAS-FEIRAS"); + } + segunda = usuario.get_Quinta(); + if (!segunda.GetValueOrDefault() & segunda.HasValue) + { + strs.Add("QUINTAS-FEIRAS"); + strs2.Remove("QUINTAS-FEIRAS"); + } + segunda = usuario.get_Sexta(); + if (!segunda.GetValueOrDefault() & segunda.HasValue) + { + strs.Add("SEXTAS-FEIRAS"); + strs2.Remove("SEXTAS-FEIRAS"); + } + segunda = usuario.get_Sabado(); + if (!segunda.GetValueOrDefault() & segunda.HasValue) + { + strs.Add("SÁBADOS"); + strs2.Remove("SÁBADOS"); + } + segunda = usuario.get_Domingo(); + if (!segunda.GetValueOrDefault() & segunda.HasValue) + { + strs.Add("DOMINGOS"); + strs2.Remove("DOMINGOS"); + } + if (strs.Count == 7) + { + str1 = "RESTRITO TODOS OS DIAS"; + } + else if (strs.Count > 3) + { + str1 = "APENAS PERMITIDO "; + for (int i = 0; i < strs2.Count; i++) + { + if (i >= strs2.Count - 2) + { + str1 = (i != strs2.Count - 2 ? string.Concat(str1, strs2[i]) : string.Concat(str1, strs2[i], " E ")); + } + else + { + str1 = string.Concat(str1, strs2[i], ", "); + } + } + } + else + { + str1 = "RESTRITO "; + for (int j = 0; j < strs.Count; j++) + { + if (j >= strs.Count - 2) + { + str1 = (j != strs.Count - 2 ? string.Concat(str1, strs[j]) : string.Concat(str1, strs[j], " E ")); + } + else + { + str1 = string.Concat(str1, strs[j], ", "); + } + } + } + DateTime networkTime = Funcoes.GetNetworkTime(); + switch (networkTime.DayOfWeek) + { + case DayOfWeek.Sunday: + { + segunda = usuario.get_Domingo(); + if (!(!segunda.GetValueOrDefault() & segunda.HasValue)) + { + break; + } + str = string.Concat("ACESSO ", str1, ". CONTATE O ADMINISTRADOR DO SISTEMA"); + str2 = null; + return str; + } + case DayOfWeek.Monday: + { + segunda = usuario.get_Segunda(); + if (!(!segunda.GetValueOrDefault() & segunda.HasValue)) + { + break; + } + str = string.Concat("ACESSO ", str1, ". CONTATE O ADMINISTRADOR DO SISTEMA"); + str2 = null; + return str; + } + case DayOfWeek.Tuesday: + { + segunda = usuario.get_Terca(); + if (!(!segunda.GetValueOrDefault() & segunda.HasValue)) + { + break; + } + str = string.Concat("ACESSO ", str1, ". CONTATE O ADMINISTRADOR DO SISTEMA"); + str2 = null; + return str; + } + case DayOfWeek.Wednesday: + { + segunda = usuario.get_Quarta(); + if (!(!segunda.GetValueOrDefault() & segunda.HasValue)) + { + break; + } + str = string.Concat("ACESSO ", str1, ". CONTATE O ADMINISTRADOR DO SISTEMA"); + str2 = null; + return str; + } + case DayOfWeek.Thursday: + { + segunda = usuario.get_Quinta(); + if (!(!segunda.GetValueOrDefault() & segunda.HasValue)) + { + break; + } + str = string.Concat("ACESSO ", str1, ". CONTATE O ADMINISTRADOR DO SISTEMA"); + str2 = null; + return str; + } + case DayOfWeek.Friday: + { + segunda = usuario.get_Sexta(); + if (!(!segunda.GetValueOrDefault() & segunda.HasValue)) + { + break; + } + str = string.Concat("ACESSO ", str1, ". CONTATE O ADMINISTRADOR DO SISTEMA"); + str2 = null; + return str; + } + case DayOfWeek.Saturday: + { + segunda = usuario.get_Sabado(); + if (!(!segunda.GetValueOrDefault() & segunda.HasValue)) + { + break; + } + str = string.Concat("ACESSO ", str1, ". CONTATE O ADMINISTRADOR DO SISTEMA"); + str2 = null; + return str; + } + } + if (usuario.get_InicioAcesso().HasValue && usuario.get_FimAcesso().HasValue && (networkTime.TimeOfDay <= usuario.get_InicioAcesso().Value.TimeOfDay || networkTime.TimeOfDay >= usuario.get_FimAcesso().Value.TimeOfDay)) + { + DateTime value = usuario.get_InicioAcesso().Value; + string shortTimeString = value.ToShortTimeString(); + value = usuario.get_FimAcesso().Value; + str2 = string.Concat("USUÁRIO COM PERMISSÃO DE ACESSO ENTRE ", shortTimeString, " E ", value.ToShortTimeString()); + } + str = str2; + } + else + { + str = "DADOS DE ACESSO INVÁLIDOS"; + } + str2 = null; + return str; + } + + public async Task VerificarContrato(Gestor.Model.License.Produto produto, bool message = true, bool root = false) + { + bool flag; + Licenca licenca; + string str; + if (produto == 79) + { + List produtos = LicenseHelper.Produtos; + if (!produtos.Exists((Licenca x) => { + if (x.get_Produto() != 91) + { + return false; + } + return x.get_AcessoLiberado(); + })) + { + List licencas = LicenseHelper.Produtos; + if (!licencas.Exists((Licenca x) => { + if (x.get_Produto() != 81) + { + return false; + } + return x.get_AcessoLiberado(); + })) + { + List produtos1 = LicenseHelper.Produtos; + if (produtos1.Exists((Licenca x) => { + if (x.get_Produto() != 77) + { + return false; + } + return x.get_AcessoLiberado(); + })) + { + flag = true; + return flag; + } + } + else + { + flag = true; + return flag; + } + } + else + { + flag = true; + return flag; + } + } + if (LicenseHelper.Produtos == null || !LicenseHelper.Produtos.Exists((Licenca x) => { + if (x.get_Produto() != produto) + { + return false; + } + return x.get_AcessoLiberado(); + })) + { + if (message) + { + List licencas1 = LicenseHelper.Produtos; + if (licencas1 != null) + { + licenca = licencas1.FirstOrDefault((Licenca x) => x.get_Produto() == produto); + } + else + { + licenca = null; + } + Licenca licenca1 = licenca; + BaseViewModel baseViewModel = this; + str = (licenca1 == null ? string.Concat("VOCÊ NÃO POSSUI O MÓDULO ", EnumHelper.GetDescription(produto), " CONTRATADO") : string.Concat("ACESSO AO MÓDULO ", EnumHelper.GetDescription(produto), " INTERROMPIDO")); + await baseViewModel.ShowMessage(str, "OK", "", root); + } + flag = false; + } + else + { + flag = true; + } + return flag; + } + + public void VerificarEnables(long? id) + { + this._lastId = id; + this.EnableIncluir = (!id.HasValue ? true : id.Value >= (long)0); + this.EnableAlterar = (!id.HasValue ? false : id.Value > (long)0); + this.EnableExcluir = (!id.HasValue ? false : id.Value > (long)0); + this.EnableButtons = (!id.HasValue ? false : id.Value > (long)0); + } + + public async Task VerificarPermissao(TipoTela tela, bool root = false) + { + bool flag; + if (!await this.PermissaoConsultar(tela)) + { + await this.ShowMessage("VOCÊ NÃO POSSUI PERMISSÃO PARA ACESSAR ESSA TELA. CONTATE O ADIMINSTRADOR DO SISTEMA.", "OK", "", root); + flag = false; + } + else + { + flag = true; + } + return flag; + } + + public async Task VerificarRestricao(TipoRestricao tipoRestricao, bool root = false, bool showmessage = true) + { + bool flag; + if (Recursos.Usuario.get_Id() != 0) + { + RestricaoUsuario restricaoUsuario = this.ServicoRestriUsuario.BuscarRestricao(Recursos.Usuario, tipoRestricao); + if (restricaoUsuario == null || !restricaoUsuario.get_Restricao()) + { + flag = true; + } + else + { + if (showmessage) + { + await this.ShowMessage("VOCÊ NÃO POSSUI PERMISSÃO PARA ACESSAR ESSA TELA. CONTATE O ADMINISTRADOR DO SISTEMA.", "OK", "", root); + } + flag = false; + } + } + else + { + flag = true; + } + return flag; + } + + public async Task VerificarVersao() + { + bool flag; + bool flag1; + try + { + string str = await Gestor.Application.Helpers.Connection.Get(string.Format("Update/Stable?versao={0}", ApplicationHelper.Versao), true, false); + flag1 = (str == null ? false : bool.Parse(str)); + flag = flag1; + } + catch (Exception exception1) + { + Exception exception = exception1; + (new BaseServico()).Registrar(exception, 287, 3, ApplicationHelper.Versao.ToString(), false); + flag = false; + } + if (flag) + { + await this.ShowMessage("HÁ UMA ATUALIZAÇÃO OBRIGATÓRIA A SER FEITA. O PROCESSO SERÁ CANCELADO PARA A ATUALIZAÇÃO", "OK", "", false); + System.Windows.Application.Current.Shutdown(); + } + else + { + ApplicationHelper.ChecagemVersao = Funcoes.GetNetworkTime(); + } + } + + public async Task> VerificaVinculoVendedor(Usuario usuario) + { + List vendedorUsuarios; + if (usuario == null || usuario.get_Id() == 0) + { + vendedorUsuarios = new List(); + } + else + { + vendedorUsuarios = await this.ServicoVendedorUsuario.FindByVinculo(usuario); + } + return vendedorUsuarios; + } + + public event PropertyChangedEventHandler PropertyChanged; + } +} \ No newline at end of file -- cgit v1.2.3