From 674ca83ba9243a9e95a7568c797668dab6aee26a Mon Sep 17 00:00:00 2001 From: Lucas Faria Mendes Date: Mon, 30 Mar 2026 10:35:25 -0300 Subject: feat: upload files --- .../ViewModels/DashboardViewModel.cs | 1111 ++++++++++++++++++++ 1 file changed, 1111 insertions(+) create mode 100644 Gestor.Application/ViewModels/DashboardViewModel.cs (limited to 'Gestor.Application/ViewModels/DashboardViewModel.cs') diff --git a/Gestor.Application/ViewModels/DashboardViewModel.cs b/Gestor.Application/ViewModels/DashboardViewModel.cs new file mode 100644 index 0000000..8ef9d41 --- /dev/null +++ b/Gestor.Application/ViewModels/DashboardViewModel.cs @@ -0,0 +1,1111 @@ +using Gestor.Application.Helpers; +using Gestor.Application.Servicos; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros; +using Gestor.Application.ViewModels.Generic; +using Gestor.Common.Validation; +using Gestor.Model.Common; +using Gestor.Model.Domain.Common; +using Gestor.Model.Domain.Configuracoes; +using Gestor.Model.Domain.Ferramentas; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Relatorios; +using Gestor.Model.Domain.Relatorios.ClientesAtivosInativos; +using Gestor.Model.Domain.Relatorios.Dashboard; +using Gestor.Model.Domain.Relatorios.Renovacao; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace Gestor.Application.ViewModels +{ + public class DashboardViewModel : BaseSegurosViewModel + { + private readonly TarefaServico _servico; + + private readonly ApoliceServico _apoliceServico; + + private readonly ClienteServico _clienteServico; + + private readonly SinistroServico _sinitrosServico; + + private readonly TarefaServico _tarefaServico; + + private bool _renovacoesEnabled; + + private bool _tarefasEnabled; + + private bool _aniversariantesEnabled; + + private bool _sinistrosEnabled; + + private bool _prospeccoesEnabled; + + private bool _notasEnabled; + + private bool _publica; + + private string _quantidadeRenovacoes = "0"; + + private string _quantidadeAniversariantes = "0"; + + private string _quantidadeProspeccao = "0"; + + private string _quantidadeSinisto = "0"; + + private string _quantidadeTarefas = "0"; + + private List _intervalo = new List() + { + "HOJE", + "PRÓXIMOS 3 DIAS", + "PRÓXIMOS 7 DIAS" + }; + + private string _intervaloSelecionado = "HOJE"; + + private bool _isProspectar; + + private ObservableCollection _notas; + + private ObservableCollection _telefones = new ObservableCollection(); + + private string _anotacoes = ""; + + private ObservableCollection _prospeccoes; + + private ObservableCollection _aniversariantes; + + private ObservableCollection _sinistros; + + private ObservableCollection _renovacaoFiltrado; + + private ObservableCollection _tarefas = new ObservableCollection(); + + private List _ramos; + + private Ramo _selectedRamo; + + private List _referencias = new List() + { + "VENCIMENTO DA ÚLTIMA PARCELA", + "VIGÊNCIA INICIAL", + "VIGÊNCIA FINAL" + }; + + private string _referencia = "VENCIMENTO DA ÚLTIMA PARCELA"; + + private int _selectedTile = 1; + + private string _labelProspeccao; + + private List _filtroCliente = new List() + { + "AMBOS", + "CNPJ", + "CPF" + }; + + private string _filtroClientes; + + private Gestor.Model.Domain.Relatorios.Filtros _filtroAniversariantes + { + get; + set; + } + + private Gestor.Model.Domain.Relatorios.Filtros _filtroProspectar + { + get; + set; + } + + private Gestor.Model.Domain.Relatorios.Filtros _filtroRenovacao + { + get; + set; + } + + private Gestor.Model.Domain.Relatorios.Filtros _filtroSinistros + { + get; + set; + } + + private Gestor.Model.Domain.Relatorios.Filtros _filtroTarefas + { + get; + set; + } + + public ObservableCollection Aniversariantes + { + get + { + return this._aniversariantes; + } + set + { + this._aniversariantes = value; + base.OnPropertyChanged("Aniversariantes"); + } + } + + public bool AniversariantesEnabled + { + get + { + return this._aniversariantesEnabled; + } + set + { + this._aniversariantesEnabled = value; + base.OnPropertyChanged("AniversariantesEnabled"); + } + } + + public new string Anotacoes + { + get + { + return this._anotacoes; + } + set + { + this._anotacoes = value; + base.OnPropertyChanged("Anotacoes"); + } + } + + public List FiltroCliente + { + get + { + return this._filtroCliente; + } + set + { + this._filtroCliente = value; + base.OnPropertyChanged("FiltroCliente"); + } + } + + public string FiltroClientes + { + get + { + return this._filtroClientes; + } + set + { + this._filtroClientes = value; + base.OnPropertyChanged("FiltroClientes"); + } + } + + public Gestor.Model.Domain.Relatorios.Filtros Filtros + { + get; + set; + } + + public List Intervalo + { + get + { + return this._intervalo; + } + set + { + this._intervalo = value; + base.OnPropertyChanged("Intervalo"); + } + } + + public string IntervaloSelecionado + { + get + { + return this._intervaloSelecionado; + } + set + { + this._intervaloSelecionado = value; + base.OnPropertyChanged("IntervaloSelecionado"); + } + } + + public bool IsProspectar + { + get + { + return this._isProspectar; + } + set + { + this._isProspectar = value; + base.OnPropertyChanged("IsProspectar"); + } + } + + public string LabelProspeccao + { + get + { + return this._labelProspeccao; + } + set + { + this._labelProspeccao = value; + base.OnPropertyChanged("LabelProspeccao"); + } + } + + public bool Load { get; set; } = true; + + public ObservableCollection Notas + { + get + { + return this._notas; + } + set + { + this._notas = value; + base.OnPropertyChanged("Notas"); + } + } + + public bool NotasEnabled + { + get + { + return this._notasEnabled; + } + set + { + this._notasEnabled = value; + base.OnPropertyChanged("NotasEnabled"); + } + } + + public List Permissoes + { + get; + set; + } + + public ObservableCollection Prospeccoes + { + get + { + return this._prospeccoes; + } + set + { + this._prospeccoes = value; + base.OnPropertyChanged("Prospeccoes"); + } + } + + public bool ProspeccoesEnabled + { + get + { + return this._prospeccoesEnabled; + } + set + { + this._prospeccoesEnabled = value; + base.OnPropertyChanged("ProspeccoesEnabled"); + } + } + + public bool Publica + { + get + { + return this._publica; + } + set + { + this._publica = value; + base.OnPropertyChanged("Publica"); + } + } + + public string QuantidadeAniversariantes + { + get + { + return this._quantidadeAniversariantes; + } + set + { + this._quantidadeAniversariantes = value; + base.OnPropertyChanged("QuantidadeAniversariantes"); + } + } + + public string QuantidadeProspeccao + { + get + { + return this._quantidadeProspeccao; + } + set + { + this._quantidadeProspeccao = value; + base.OnPropertyChanged("QuantidadeProspeccao"); + } + } + + public string QuantidadeRenovacoes + { + get + { + return this._quantidadeRenovacoes; + } + set + { + this._quantidadeRenovacoes = value; + base.OnPropertyChanged("QuantidadeRenovacoes"); + } + } + + public string QuantidadeSinistro + { + get + { + return this._quantidadeSinisto; + } + set + { + this._quantidadeSinisto = value; + base.OnPropertyChanged("QuantidadeSinistro"); + } + } + + public string QuantidadeTarefas + { + get + { + return this._quantidadeTarefas; + } + set + { + this._quantidadeTarefas = value; + base.OnPropertyChanged("QuantidadeTarefas"); + } + } + + public List Ramos + { + get + { + return this._ramos; + } + set + { + this._ramos = value; + base.OnPropertyChanged("Ramos"); + } + } + + public string Referencia + { + get + { + return this._referencia; + } + set + { + this._referencia = value; + base.OnPropertyChanged("Referencia"); + } + } + + public List Referencias + { + get + { + return this._referencias; + } + set + { + this._referencias = value; + base.OnPropertyChanged("Referencias"); + } + } + + public ObservableCollection RenovacaoFiltrado + { + get + { + return this._renovacaoFiltrado; + } + set + { + this._renovacaoFiltrado = value; + base.OnPropertyChanged("RenovacaoFiltrado"); + } + } + + public bool RenovacoesEnabled + { + get + { + return this._renovacoesEnabled; + } + set + { + this._renovacoesEnabled = value; + base.OnPropertyChanged("RenovacoesEnabled"); + } + } + + public List Restricoes + { + get; + set; + } + + public Ramo SelectedRamo + { + get + { + return this._selectedRamo; + } + set + { + this._selectedRamo = value; + base.OnPropertyChanged("SelectedRamo"); + } + } + + public int SelectedTile + { + get + { + return this._selectedTile; + } + set + { + this._selectedTile = value; + this.IsProspectar = (value == 4 ? true : value == 5); + } + } + + public ObservableCollection Sinistros + { + get + { + return this._sinistros; + } + set + { + this._sinistros = value; + base.OnPropertyChanged("Sinistros"); + } + } + + public bool SinistrosEnabled + { + get + { + return this._sinistrosEnabled; + } + set + { + this._sinistrosEnabled = value; + base.OnPropertyChanged("SinistrosEnabled"); + } + } + + public ObservableCollection Tarefas + { + get + { + return this._tarefas; + } + set + { + this._tarefas = value; + base.OnPropertyChanged("Tarefas"); + } + } + + public bool TarefasEnabled + { + get + { + return this._tarefasEnabled; + } + set + { + this._tarefasEnabled = value; + base.OnPropertyChanged("TarefasEnabled"); + } + } + + public ObservableCollection Telefones + { + get + { + return this._telefones; + } + set + { + this._telefones = value; + base.OnPropertyChanged("Telefones"); + } + } + + public DashboardViewModel() + { + this._servico = new TarefaServico(); + this._apoliceServico = new ApoliceServico(); + this._clienteServico = new ClienteServico(); + this._tarefaServico = new TarefaServico(); + this._sinitrosServico = new SinistroServico(); + } + + public async Task BuscarRestricoes() + { + this.Restricoes = await this.ServicoRestriUsuario.BuscarRestricoes(Recursos.Usuario.get_Id()); + this.Permissoes = new List(); + PermissaoUsuario permissaoUsuario = await this.ServicoPermissUsuario.VerificarPermissao(Recursos.Usuario, 38); + if (permissaoUsuario != null) + { + this.Permissoes.Add(permissaoUsuario); + } + } + + public async Task CarregarAniversariantes(bool force = false) + { + List clientesAtivosInativos; + this.AniversariantesEnabled = false; + if (force || !this.CompararFiltros(this._filtroAniversariantes)) + { + this._filtroAniversariantes = this.Filtros; + List vendedorUsuarios = await base.VerificaVinculoVendedor(Recursos.Usuario); + List nums = new List(); + vendedorUsuarios.ForEach((VendedorUsuario v) => nums.Add(v.get_Vendedor().get_Id())); + clientesAtivosInativos = (vendedorUsuarios.Count <= 0 ? await this._clienteServico.BuscarAniversariantes(this.Filtros) : await this._clienteServico.BuscarAniversariantesVinculo(this.Filtros, vendedorUsuarios)); + List clientesAtivosInativos1 = clientesAtivosInativos; + this.QuantidadeAniversariantes = clientesAtivosInativos1.Count.ToString(); + if (clientesAtivosInativos1.Count != 0) + { + this.Aniversariantes = new ObservableCollection(clientesAtivosInativos1); + this.AniversariantesEnabled = true; + } + else + { + this.Aniversariantes = null; + this.AniversariantesEnabled = true; + } + } + else + { + this.AniversariantesEnabled = true; + } + } + + public async Task CarregarFiltros() + { + long num; + List nums = new List(); + List vendedorUsuarios = await base.VerificaVinculoVendedor(Recursos.Usuario); + if (vendedorUsuarios.Count > 0) + { + vendedorUsuarios.ForEach((VendedorUsuario x) => nums.Add(x.get_Vendedor().get_Id())); + } + DateTime today = DateTime.Today; + DateTime dateTime = DateTime.Today; + string intervaloSelecionado = this.IntervaloSelecionado; + if (intervaloSelecionado == "PRÓXIMOS 3 DIAS") + { + dateTime = today.AddDays(3); + } + else if (intervaloSelecionado == "PRÓXIMOS 7 DIAS") + { + dateTime = today.AddDays(7); + } + DashboardViewModel dashboardViewModel = this; + Gestor.Model.Domain.Relatorios.Filtros filtro = new Gestor.Model.Domain.Relatorios.Filtros(); + filtro.set_Inicio(today); + filtro.set_Fim(dateTime); + filtro.set_Vendedores(nums); + num = (Recursos.Usuario.get_IdEmpresa() > (long)1 ? Recursos.Usuario.get_IdEmpresa() : (long)0); + filtro.set_IdEmpresa(num); + filtro.set_Status(new List() + { + (long)1, + (long)2 + }); + dashboardViewModel.Filtros = filtro; + } + + public async Task CarregarNotas() + { + this.NotasEnabled = false; + this.Notas = new ObservableCollection(await this._servico.BuscarNotas(Recursos.Usuario.get_Id())); + this.NotasEnabled = true; + } + + public async Task CarregarProspect(DateTime inicio, DateTime fim) + { + this.ProspeccoesEnabled = false; + Gestor.Model.Domain.Relatorios.Filtros filtro = new Gestor.Model.Domain.Relatorios.Filtros(); + filtro.set_Inicio(inicio); + filtro.set_Fim(fim); + filtro.set_Ramos(new List() + { + this.SelectedRamo.get_Id() + }); + filtro.set_Vendedores(this.Filtros.get_Vendedores()); + filtro.set_Referencia(this.Referencia); + filtro.set_FiltrarDocumento(this.FiltroClientes); + Gestor.Model.Domain.Relatorios.Filtros filtro1 = filtro; + this.LabelProspeccao = string.Concat("CLIENTES QUE NÃO POSSUEM SEGUROS DO RAMO ", this.SelectedRamo.get_Nome(), " "); + string referencia = this.Referencia; + if (referencia == "VIGÊNCIA INICIAL") + { + this.LabelProspeccao = string.Concat(this.LabelProspeccao, "E QUE ESTÃO COM UMA APÓLICE INICIANDO NO PERÍODO"); + } + else if (referencia == "VIGÊNCIA FINAL") + { + this.LabelProspeccao = string.Concat(this.LabelProspeccao, "E QUE ESTÃO COM UMA APÓLICE VENCENDO NO PERÍODO"); + } + else + { + this.LabelProspeccao = string.Concat(this.LabelProspeccao, "E QUE ESTÃO COM A ULTIMA PARCELA VENCENDO NO PERÍODO"); + } + if (this._filtroProspectar == null || !(this._filtroProspectar.get_Inicio() == filtro1.get_Inicio()) || !(this._filtroProspectar.get_Fim() == filtro1.get_Fim()) || this._filtroProspectar.get_Ramos() != filtro1.get_Ramos() || !(this._filtroProspectar.get_Referencia() == filtro1.get_Referencia())) + { + this._filtroProspectar = filtro1; + List prospectars = await this._clienteServico.BuscarProspect(filtro1); + this.QuantidadeProspeccao = prospectars.Count.ToString(); + if (prospectars.Count == 0) + { + this.LabelProspeccao = "NÃO HÁ CLIENTES PARA PROSPECTAR"; + } + this.Prospeccoes = new ObservableCollection(prospectars); + this.ProspeccoesEnabled = true; + } + else + { + this.ProspeccoesEnabled = true; + } + } + + public void CarregarRamos() + { + List nums = new List() + { + (long)1, + (long)2, + (long)6, + (long)7 + }; + this.Ramos = ( + from x in Recursos.Ramos + where nums.Contains(x.get_Id()) + select x).ToList(); + this.SelectedRamo = this.Ramos.Find((Ramo x) => x.get_Id() == (long)1); + } + + public async Task CarregarRenovacoes(bool force = false) + { + List list; + this.RenovacoesEnabled = false; + if (force || !this.CompararFiltros(this._filtroRenovacao)) + { + this._filtroRenovacao = this.Filtros; + List documentos = await this._apoliceServico.BuscarApolicesVigenciaFinal(this.Filtros, false); + IEnumerable tipo = + from x in documentos + where x.get_Tipo() != 3 + select x; + list = tipo.Select((Documento x) => { + object nome; + object obj; + string str; + object nome1; + object obj1; + string str1; + object nome2; + Renovacao renovacao = new Renovacao(); + Cliente cliente = x.get_Controle().get_Cliente(); + if (cliente != null) + { + nome = cliente.get_Nome(); + } + else + { + nome = null; + } + if (nome == null) + { + nome = ""; + } + renovacao.set_Cliente((string)nome); + renovacao.set_Apolice(x.get_Apolice() ?? ""); + renovacao.set_PremioLiquido(x.get_PremioLiquido()); + renovacao.set_PremioTotal(x.get_PremioTotal()); + Negocio? negocio = x.get_Negocio(); + renovacao.set_Negocio((string)((negocio.HasValue ? ValidationHelper.GetDescription(negocio.GetValueOrDefault()) : null) ?? "")); + renovacao.set_VigenciaFinal(x.get_Vigencia2()); + Produto produto = x.get_Controle().get_Produto(); + if (produto != null) + { + obj = produto.get_Nome(); + } + else + { + obj = null; + } + if (obj == null) + { + obj = ""; + } + renovacao.set_Produto((string)obj); + renovacao.set_Ramo(x.get_Controle().get_Ramo().get_Nome() ?? ""); + renovacao.set_Seguradora((!string.IsNullOrWhiteSpace(x.get_Controle().get_Seguradora().get_NomeSocial()) ? x.get_Controle().get_Seguradora().get_NomeSocial() : x.get_Controle().get_Seguradora().get_Nome())); + renovacao.set_Status((x.get_Situacao() == 1 || x.get_Situacao() == 2 ? "NÃO TRABALHADO" : ValidationHelper.GetDescription(x.get_Situacao()) ?? "")); + Vendedor vendedorPrincipal = x.get_VendedorPrincipal(); + if (vendedorPrincipal != null) + { + str = vendedorPrincipal.get_Nome(); + } + else + { + str = null; + } + renovacao.set_Vendedor(str); + Estipulante estipulante1 = x.get_Estipulante1(); + if (estipulante1 != null) + { + nome1 = estipulante1.get_Nome(); + } + else + { + nome1 = null; + } + if (nome1 == null) + { + nome1 = ""; + } + renovacao.set_Estipulante((string)nome1); + renovacao.set_TodosVendedores((x.get_Vendedores() == null || x.get_Vendedores().Count == 0 ? "" : string.Join("; ", + from v in x.get_Vendedores() + select v.get_Nome()))); + renovacao.set_Tipo(x.get_Tipo()); + renovacao.set_Documento(x); + renovacao.set_Comissao(x.get_Comissao()); + renovacao.set_Item((x.get_ItensAtivo() != null ? (x.get_ItensAtivo().Count > 1 ? "APÓLICE COLETIVA" : (x.get_ItensAtivo().Count == 1 ? x.get_ItensAtivo().First().get_Descricao() : "")) : "")); + renovacao.set_TipoDocumento((x.get_Tipo() == 0 ? "APÓLICE" : (x.get_Tipo() == 1 ? "ENDOSSO" : ""))); + renovacao.set_Sinistro((x.get_Sinistro() ? "SIM" : "NÃO")); + renovacao.set_DataControle(x.get_DataControle()); + Status status = x.get_Status(); + if (status != null) + { + obj1 = status.get_Nome(); + } + else + { + obj1 = null; + } + if (obj1 == null) + { + obj1 = ""; + } + renovacao.set_StatusApolice((string)obj1); + renovacao.set_IdEmpresa(x.get_Controle().get_IdEmpresa()); + Empresa empresa = Recursos.Empresas.FirstOrDefault((Empresa e) => e.get_Id() == x.get_Controle().get_IdEmpresa()); + if (empresa != null) + { + str1 = empresa.get_Nome(); + } + else + { + str1 = null; + } + renovacao.set_Empresa(str1); + renovacao.set_QtdSinistro(x.get_ItensAtivo().Sum((Item s) => s.get_Sinistros().Count)); + Banco banco = x.get_Banco(); + if (banco != null) + { + nome2 = banco.get_Nome(); + } + else + { + nome2 = null; + } + if (nome2 == null) + { + nome2 = ""; + } + renovacao.set_Banco((string)nome2); + renovacao.set_Conta(x.get_Conta()); + renovacao.set_Agencia(x.get_Agencia()); + renovacao.set_Pasta(x.get_Pasta()); + renovacao.set_PastaCliente(x.get_Controle().get_Cliente().get_Pasta()); + renovacao.set_Calculos(x.get_Calculos()); + return renovacao; + }).ToList(); + List prospeccaos = await (new ProspeccaoServico()).BuscarProspeccoes(this.Filtros); + IEnumerable prospeccaos1 = + from x in prospeccaos + where x.get_Renovacao() + select x; + List renovacaos = prospeccaos1.Select((Prospeccao x) => { + string nome; + string str; + string nome1; + Renovacao renovacao = new Renovacao(); + renovacao.set_Cliente(x.get_Nome() ?? ""); + renovacao.set_Apolice("PROSPECÇÃO"); + renovacao.set_VigenciaFinal(x.get_VigenciaFinal()); + Renovacao renovacao1 = renovacao; + StatusProspeccao? status = x.get_Status(); + renovacao1.set_Status((string)((status.HasValue ? ValidationHelper.GetDescription(status.GetValueOrDefault()) : null) ?? "")); + Renovacao renovacao2 = renovacao; + Vendedor vendedor = x.get_Vendedor(); + if (vendedor != null) + { + nome = vendedor.get_Nome(); + } + else + { + nome = null; + } + renovacao2.set_Vendedor(nome); + Renovacao renovacao3 = renovacao; + Vendedor vendedor1 = x.get_Vendedor(); + if (vendedor1 != null) + { + str = vendedor1.get_Nome(); + } + else + { + str = null; + } + renovacao3.set_TodosVendedores(str); + renovacao.set_Telefone(string.Concat(new string[] { x.get_Prefixo1(), " ", x.get_Telefone1(), " | ", x.get_Prefixo2(), " ", x.get_Telefone2() })); + renovacao.set_Tipo(3); + renovacao.set_TipoDocumento("PROSPECÇÃO"); + renovacao.set_Item(x.get_Item()); + Renovacao renovacao4 = renovacao; + Produto produto = x.get_Produto(); + if (produto != null) + { + nome1 = produto.get_Nome(); + } + else + { + nome1 = null; + } + renovacao4.set_Produto(nome1); + renovacao.set_Prospeccao(x); + return renovacao; + }).ToList(); + list.AddRange(renovacaos); + this.QuantidadeRenovacoes = list.Count.ToString(); + if (list.Count != 0) + { + DashboardViewModel observableCollection = this; + List renovacaos1 = list; + observableCollection.RenovacaoFiltrado = new ObservableCollection(( + from x in renovacaos1 + orderby x.get_VigenciaFinal() + select x).ToList()); + this.RenovacoesEnabled = true; + } + else + { + this.RenovacaoFiltrado = null; + this.RenovacoesEnabled = true; + } + } + else + { + this.RenovacoesEnabled = true; + } + list = null; + } + + public async Task CarregarSinistros(bool force = false) + { + this.SinistrosEnabled = false; + if (force || !this.CompararFiltros(this._filtroSinistros)) + { + this._filtroSinistros = this.Filtros; + List sinistros = await this._sinitrosServico.BuscarSinistroPendente(this.Filtros); + this.QuantidadeSinistro = sinistros.Count.ToString(); + if (sinistros.Count != 0) + { + this.Sinistros = new ObservableCollection(sinistros); + this.SinistrosEnabled = true; + } + else + { + this.Sinistros = null; + this.SinistrosEnabled = true; + } + } + else + { + this.SinistrosEnabled = true; + } + } + + public async Task CarregarSinistros(DateTime inicio, DateTime fim) + { + this._filtroSinistros.set_Fim(fim); + this._filtroSinistros.set_Inicio(inicio); + List sinistros = await this._sinitrosServico.BuscarSinistroPendente(this._filtroSinistros); + this.QuantidadeSinistro = sinistros.Count.ToString(); + this.Sinistros = new ObservableCollection(sinistros); + } + + public async Task CarregarTarefas(bool force = false) + { + this.TarefasEnabled = false; + if (force || !this.CompararFiltros(this._filtroTarefas)) + { + this._filtroTarefas = this.Filtros; + List tarefas = await this._tarefaServico.BuscarTarefas(Recursos.Usuario.get_Id(), this._filtroTarefas.get_Inicio(), this._filtroTarefas.get_Fim(), new bool?(false)); + this.QuantidadeTarefas = tarefas.Count.ToString(); + if (tarefas.Count != 0) + { + DashboardViewModel observableCollection = this; + List tarefas1 = tarefas; + IEnumerable entidade = + from x in tarefas1 + where x.get_Entidade() != 1 + select x; + observableCollection.Tarefas = new ObservableCollection( + from x in entidade + orderby x.get_Agendamento() + select x); + this.TarefasEnabled = true; + } + else + { + this.Tarefas = null; + this.TarefasEnabled = true; + } + } + else + { + this.TarefasEnabled = true; + } + } + + private bool CompararFiltros(Gestor.Model.Domain.Relatorios.Filtros comparacao) + { + if (comparacao == null) + { + return false; + } + if (this.Filtros == null) + { + return false; + } + if (comparacao.get_Inicio() != this.Filtros.get_Inicio()) + { + return false; + } + if (comparacao.get_Fim() != this.Filtros.get_Fim()) + { + return false; + } + return true; + } + + public async Task ExcluirNota(Tarefa nota) + { + await this._servico.Excluir(nota.get_Id()); + } + + public async Task GerarCsv() + { + string str = string.Concat(Path.GetFileNameWithoutExtension(Path.GetTempFileName()), ".csv"); + List list = this.Prospeccoes.ToList(); + List strs = new List() + { + "Nome", + "Documento", + "Telefone" + }; + string str1 = await Funcoes.GerarCsv(list, strs); + File.WriteAllText(str, str1.ToString(), Encoding.UTF8); + Process.Start(str); + bool flag = true; + str = null; + return flag; + } + + public void LimparProspeccao() + { + } + + public async Task>> Salvar(Tarefa destino) + { + List> keyValuePairs; + Tarefa tarefa = destino; + List configuracoes = Recursos.Configuracoes; + tarefa.set_AgendamentoRetroativo(configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 45)); + List> keyValuePairs1 = destino.Validate(); + if (keyValuePairs1.Count <= 0) + { + await this._servico.Salvar(destino); + if (this._servico.Sucesso) + { + if (this.Publica) + { + long id = destino.get_Usuario().get_Id(); + List usuarios = Recursos.Usuarios; + List tasks = new List(); + foreach (Usuario usuario in usuarios) + { + if (id == usuario.get_Id()) + { + continue; + } + Tarefa tarefa1 = (Tarefa)destino.Clone(); + tarefa1.set_Id((long)0); + tarefa1.set_Usuario(usuario); + tasks.Add(this._servico.Salvar(tarefa1)); + } + await Task.WhenAll(tasks); + } + await this.CarregarNotas(); + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + return keyValuePairs; + } + + public async Task SalvarNota(Tarefa nota) + { + return await this._servico.Salvar(nota); + } + } +} \ No newline at end of file -- cgit v1.2.3