summaryrefslogtreecommitdiff
path: root/Gestor.Application/ViewModels/Generic/DialogCopiarPermissaoViewModel.cs
diff options
context:
space:
mode:
authorLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 13:35:25 +0000
committerLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 13:35:25 +0000
commit674ca83ba9243a9e95a7568c797668dab6aee26a (patch)
tree4a905b3fb1d827665a34d63f67bc5559f8e7235b /Gestor.Application/ViewModels/Generic/DialogCopiarPermissaoViewModel.cs
downloadgestor-674ca83ba9243a9e95a7568c797668dab6aee26a.tar.gz
gestor-674ca83ba9243a9e95a7568c797668dab6aee26a.zip
feat: upload files
Diffstat (limited to 'Gestor.Application/ViewModels/Generic/DialogCopiarPermissaoViewModel.cs')
-rw-r--r--Gestor.Application/ViewModels/Generic/DialogCopiarPermissaoViewModel.cs350
1 files changed, 350 insertions, 0 deletions
diff --git a/Gestor.Application/ViewModels/Generic/DialogCopiarPermissaoViewModel.cs b/Gestor.Application/ViewModels/Generic/DialogCopiarPermissaoViewModel.cs
new file mode 100644
index 0000000..0ca71be
--- /dev/null
+++ b/Gestor.Application/ViewModels/Generic/DialogCopiarPermissaoViewModel.cs
@@ -0,0 +1,350 @@
+using Gestor.Application.Helpers;
+using Gestor.Application.Servicos;
+using Gestor.Common.Validation;
+using Gestor.Model.Common;
+using Gestor.Model.Domain.Generic;
+using Gestor.Model.Domain.Relatorios;
+using Gestor.Model.Domain.Seguros;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using System.Threading.Tasks;
+
+namespace Gestor.Application.ViewModels.Generic
+{
+ public class DialogCopiarPermissaoViewModel : BaseSegurosViewModel
+ {
+ private Usuario _selectedUsuario;
+
+ private Tuple<List<PermissaoUsuario>, Usuario, List<RestricaoUsuario>, List<PermissaoArquivoDigital>, List<RestricaoUsuarioCamposRelatorios>> _usuarioParameter;
+
+ public Usuario SelectedUsuario
+ {
+ get
+ {
+ return this._selectedUsuario;
+ }
+ set
+ {
+ this._selectedUsuario = value;
+ this.WorkOnSelectedUsuario(value);
+ base.OnPropertyChanged("SelectedUsuario");
+ }
+ }
+
+ public Tuple<List<PermissaoUsuario>, Usuario, List<RestricaoUsuario>, List<PermissaoArquivoDigital>, List<RestricaoUsuarioCamposRelatorios>> UsuarioParameter
+ {
+ get
+ {
+ return this._usuarioParameter;
+ }
+ set
+ {
+ this._usuarioParameter = value;
+ base.OnPropertyChanged("UsuarioParameter");
+ }
+ }
+
+ public DialogCopiarPermissaoViewModel()
+ {
+ this.UsuarioParameter = new Tuple<List<PermissaoUsuario>, Usuario, List<RestricaoUsuario>, List<PermissaoArquivoDigital>, List<RestricaoUsuarioCamposRelatorios>>(null, null, null, null, null);
+ }
+
+ private async Task<List<PermissaoUsuario>> GetPermissoes(Usuario usuario)
+ {
+ List<PermissaoUsuario> permissaoUsuarios = new List<PermissaoUsuario>();
+ IEnumerable<TipoTela> tipoTelas = Enum.GetValues(typeof(TipoTela)).Cast<TipoTela>();
+ IEnumerable<string> str =
+ from v in tipoTelas
+ select v.ToString();
+ List<string> list = (
+ from x in str
+ orderby x
+ select x).ToList<string>();
+ List<PermissaoUsuario> permissaoUsuarios1 = await this.ServicoPermissUsuario.PermissUsuario(usuario);
+ list.ForEach((string x) => {
+ TipoTela tipoTela = (TipoTela)Enum.Parse(typeof(TipoTela), x);
+ if (!string.Equals(ValidationHelper.GetCategory(tipoTela), "seguros", StringComparison.CurrentCultureIgnoreCase) && !string.Equals(ValidationHelper.GetCategory(tipoTela), "ferramentas", StringComparison.CurrentCultureIgnoreCase))
+ {
+ return;
+ }
+ long id = (long)0;
+ bool consultar = true;
+ bool incluir = true;
+ bool alterar = true;
+ bool excluir = true;
+ if (permissaoUsuarios1.Count > 0 && permissaoUsuarios1.Any<PermissaoUsuario>((PermissaoUsuario y) => y.get_Tela() == tipoTela))
+ {
+ id = permissaoUsuarios1.First<PermissaoUsuario>((PermissaoUsuario y) => y.get_Tela() == tipoTela).get_Id();
+ consultar = permissaoUsuarios1.First<PermissaoUsuario>((PermissaoUsuario y) => y.get_Tela() == tipoTela).get_Consultar();
+ incluir = permissaoUsuarios1.First<PermissaoUsuario>((PermissaoUsuario y) => y.get_Tela() == tipoTela).get_Incluir();
+ alterar = permissaoUsuarios1.First<PermissaoUsuario>((PermissaoUsuario y) => y.get_Tela() == tipoTela).get_Alterar();
+ excluir = permissaoUsuarios1.First<PermissaoUsuario>((PermissaoUsuario y) => y.get_Tela() == tipoTela).get_Excluir();
+ }
+ PermissaoUsuario permissaoUsuario = new PermissaoUsuario();
+ permissaoUsuario.set_Id(id);
+ permissaoUsuario.set_Tela(tipoTela);
+ permissaoUsuario.set_Consultar(consultar);
+ permissaoUsuario.set_Incluir(incluir);
+ permissaoUsuario.set_Alterar(alterar);
+ permissaoUsuario.set_Excluir(excluir);
+ permissaoUsuarios.Add(permissaoUsuario);
+ });
+ List<PermissaoUsuario> permissaoUsuarios2 = permissaoUsuarios;
+ list = null;
+ return permissaoUsuarios2;
+ }
+
+ private async Task<List<PermissaoArquivoDigital>> GetPermissoesArquivoDigital(Usuario usuario)
+ {
+ List<PermissaoArquivoDigital> permissaoArquivoDigitals = new List<PermissaoArquivoDigital>();
+ IEnumerable<TipoArquivoDigital> tipoArquivoDigitals = Enum.GetValues(typeof(TipoArquivoDigital)).Cast<TipoArquivoDigital>();
+ IEnumerable<string> str =
+ from v in tipoArquivoDigitals
+ select v.ToString();
+ List<string> list = (
+ from x in str
+ orderby x
+ select x).ToList<string>();
+ List<PermissaoArquivoDigital> permissaoArquivoDigitals1 = await this.ServicoPermissArquivoDigital.PermissArquivoDigital(usuario);
+ list.ForEach((string x) => {
+ TipoArquivoDigital tipoArquivoDigital = (TipoArquivoDigital)Enum.Parse(typeof(TipoArquivoDigital), x);
+ long id = (long)0;
+ bool consultar = true;
+ bool incluir = true;
+ bool excluir = true;
+ if (permissaoArquivoDigitals1.Count > 0 && permissaoArquivoDigitals1.Any<PermissaoArquivoDigital>((PermissaoArquivoDigital y) => y.get_Tela() == tipoArquivoDigital))
+ {
+ id = permissaoArquivoDigitals1.First<PermissaoArquivoDigital>((PermissaoArquivoDigital y) => y.get_Tela() == tipoArquivoDigital).get_Id();
+ consultar = permissaoArquivoDigitals1.First<PermissaoArquivoDigital>((PermissaoArquivoDigital y) => y.get_Tela() == tipoArquivoDigital).get_Consultar();
+ incluir = permissaoArquivoDigitals1.First<PermissaoArquivoDigital>((PermissaoArquivoDigital y) => y.get_Tela() == tipoArquivoDigital).get_Incluir();
+ excluir = permissaoArquivoDigitals1.First<PermissaoArquivoDigital>((PermissaoArquivoDigital y) => y.get_Tela() == tipoArquivoDigital).get_Excluir();
+ }
+ PermissaoArquivoDigital permissaoArquivoDigital = new PermissaoArquivoDigital();
+ permissaoArquivoDigital.set_Id(id);
+ permissaoArquivoDigital.set_Tela(tipoArquivoDigital);
+ permissaoArquivoDigital.set_Consultar(consultar);
+ permissaoArquivoDigital.set_Incluir(incluir);
+ permissaoArquivoDigital.set_Excluir(excluir);
+ permissaoArquivoDigitals.Add(permissaoArquivoDigital);
+ });
+ List<PermissaoArquivoDigital> permissaoArquivoDigitals2 = permissaoArquivoDigitals;
+ list = null;
+ return permissaoArquivoDigitals2;
+ }
+
+ private async Task<List<RestricaoUsuario>> GetRestricoes(Usuario usuario)
+ {
+ List<RestricaoUsuario> restricaoUsuarios = new List<RestricaoUsuario>();
+ IEnumerable<TipoRestricao> tipoRestricaos = Enum.GetValues(typeof(TipoRestricao)).Cast<TipoRestricao>();
+ IEnumerable<string> str =
+ from v in tipoRestricaos
+ select v.ToString();
+ List<string> list = (
+ from x in str
+ orderby x
+ select x).ToList<string>();
+ List<RestricaoUsuario> restricaoUsuarios1 = await this.ServicoRestriUsuario.BuscarRestricoes(usuario.get_Id());
+ List<RestricaoUsuario> restricaoUsuarios2 = restricaoUsuarios1;
+ list.ForEach((string x) => {
+ TipoRestricao tipoRestricao = (TipoRestricao)Enum.Parse(typeof(TipoRestricao), x);
+ long id = (long)0;
+ bool restricao = false;
+ if (restricaoUsuarios2.Count > 0 && restricaoUsuarios2.Any<RestricaoUsuario>((RestricaoUsuario y) => y.get_Tipo() == tipoRestricao))
+ {
+ id = restricaoUsuarios2.First<RestricaoUsuario>((RestricaoUsuario y) => y.get_Tipo() == tipoRestricao).get_Id();
+ restricao = restricaoUsuarios2.First<RestricaoUsuario>((RestricaoUsuario y) => y.get_Tipo() == tipoRestricao).get_Restricao();
+ }
+ RestricaoUsuario restricaoUsuario = new RestricaoUsuario();
+ restricaoUsuario.set_Id(id);
+ restricaoUsuario.set_Tipo(tipoRestricao);
+ restricaoUsuario.set_Restricao(restricao);
+ restricaoUsuarios.Add(restricaoUsuario);
+ });
+ List<RestricaoUsuario> restricaoUsuarios3 = restricaoUsuarios;
+ list = null;
+ return restricaoUsuarios3;
+ }
+
+ private async Task<List<RestricaoUsuarioCamposRelatorios>> GetRestricoesCamposRelatorios(Usuario usuario)
+ {
+ List<RestricaoUsuarioCamposRelatorios> restricaoUsuarioCamposRelatorios = new List<RestricaoUsuarioCamposRelatorios>();
+ List<ParametrosRelatorio> parametrosRelatorios = new List<ParametrosRelatorio>();
+ foreach (Relatorio relatorio in Enum.GetValues(typeof(Relatorio)).Cast<Relatorio>())
+ {
+ switch (relatorio)
+ {
+ case 0:
+ case 1:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<ClientesAtivosInativos>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 2:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<Producao>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 3:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<ApolicePendente>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 4:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<Renovacao>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 5:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<Gestor.Model.Domain.Relatorios.Comissao.Comissao>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 6:
+ case 16:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<Pendente>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 7:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<DadosRelatorio>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 8:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<Auditoria>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 9:
+ case 10:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<Sinistro>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 11:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<Fechamento>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 12:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<FaturaPendente>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 13:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<ExtratoBaixadoRelatorio>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 14:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<MetaSeguradoraRelatorio>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 15:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<MetaVendedorRelatorio>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 17:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<Licenciamento>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 18:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<Tarefa>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 19:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<NotaFiscalRelatorio>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 20:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<PrevisaoPagamento>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 23:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<LogsEnvio>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 27:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<Placas>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ case 29:
+ {
+ parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio<Classificacao>(relatorio, new List<ParametrosRelatorio>()));
+ continue;
+ }
+ default:
+ {
+ continue;
+ }
+ }
+ }
+ List<RestricaoUsuarioCamposRelatorios> restricaoUsuarioCamposRelatorios1 = await this.ServicoRestriUsuario.BuscarRestricoesCamposRelatorios(usuario.get_Id());
+ List<RestricaoUsuarioCamposRelatorios> restricaoUsuarioCamposRelatorios2 = restricaoUsuarioCamposRelatorios1;
+ parametrosRelatorios.ForEach((ParametrosRelatorio x) => {
+ long id = (long)0;
+ bool restricao = false;
+ if (restricaoUsuarioCamposRelatorios2.Count > 0 && restricaoUsuarioCamposRelatorios2.Any<RestricaoUsuarioCamposRelatorios>((RestricaoUsuarioCamposRelatorios y) => {
+ if (y.get_Campo() != x.get_Header())
+ {
+ return false;
+ }
+ return y.get_Relatorio() == x.get_Relatorio();
+ }))
+ {
+ id = restricaoUsuarioCamposRelatorios2.First<RestricaoUsuarioCamposRelatorios>((RestricaoUsuarioCamposRelatorios y) => {
+ if (y.get_Campo() != x.get_Header())
+ {
+ return false;
+ }
+ return y.get_Relatorio() == x.get_Relatorio();
+ }).get_Id();
+ restricao = restricaoUsuarioCamposRelatorios2.First<RestricaoUsuarioCamposRelatorios>((RestricaoUsuarioCamposRelatorios y) => {
+ if (y.get_Campo() != x.get_Header())
+ {
+ return false;
+ }
+ return y.get_Relatorio() == x.get_Relatorio();
+ }).get_Restricao();
+ }
+ RestricaoUsuarioCamposRelatorios restricaoUsuarioCamposRelatorio = new RestricaoUsuarioCamposRelatorios();
+ restricaoUsuarioCamposRelatorio.set_Id(id);
+ restricaoUsuarioCamposRelatorio.set_Campo(x.get_Header());
+ restricaoUsuarioCamposRelatorio.set_Relatorio(x.get_Relatorio());
+ restricaoUsuarioCamposRelatorio.set_Restricao(restricao);
+ restricaoUsuarioCamposRelatorios.Add(restricaoUsuarioCamposRelatorio);
+ });
+ List<RestricaoUsuarioCamposRelatorios> restricaoUsuarioCamposRelatorios3 = restricaoUsuarioCamposRelatorios;
+ parametrosRelatorios = null;
+ return restricaoUsuarioCamposRelatorios3;
+ }
+
+ private async void WorkOnSelectedUsuario(Usuario value)
+ {
+ if (value != null && value.get_Id() != 0)
+ {
+ List<PermissaoUsuario> permissoes = await this.GetPermissoes(value);
+ Usuario usuario = value;
+ List<RestricaoUsuario> restricoes = await this.GetRestricoes(value);
+ List<PermissaoArquivoDigital> permissoesArquivoDigital = await this.GetPermissoesArquivoDigital(value);
+ List<RestricaoUsuarioCamposRelatorios> restricoesCamposRelatorios = await this.GetRestricoesCamposRelatorios(value);
+ this.UsuarioParameter = new Tuple<List<PermissaoUsuario>, Usuario, List<RestricaoUsuario>, List<PermissaoArquivoDigital>, List<RestricaoUsuarioCamposRelatorios>>(permissoes, usuario, restricoes, permissoesArquivoDigital, restricoesCamposRelatorios);
+ permissoes = null;
+ usuario = null;
+ restricoes = null;
+ permissoesArquivoDigital = null;
+ }
+ }
+ }
+} \ No newline at end of file