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/Drawer/PermissaoUsuarioViewModel.cs | 1939 ++++++++++++++++++++ 1 file changed, 1939 insertions(+) create mode 100644 Gestor.Application/ViewModels/Drawer/PermissaoUsuarioViewModel.cs (limited to 'Gestor.Application/ViewModels/Drawer/PermissaoUsuarioViewModel.cs') diff --git a/Gestor.Application/ViewModels/Drawer/PermissaoUsuarioViewModel.cs b/Gestor.Application/ViewModels/Drawer/PermissaoUsuarioViewModel.cs new file mode 100644 index 0000000..3f8c7ac --- /dev/null +++ b/Gestor.Application/ViewModels/Drawer/PermissaoUsuarioViewModel.cs @@ -0,0 +1,1939 @@ +using Gestor.Application.Actions; +using Gestor.Application.Helpers; +using Gestor.Application.Servicos; +using Gestor.Application.Servicos.Ferramentas; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.ViewModels.Generic; +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; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using System.Windows; + +namespace Gestor.Application.ViewModels.Drawer +{ + public class PermissaoUsuarioViewModel : BaseSegurosViewModel + { + private readonly UsuarioServico _servicoUsuario; + + private Usuario _selectedUsuario; + + private bool _expandedBis; + + private bool _expandedSeguros; + + private bool _expandedRelatorios; + + private bool _expandedCampos; + + private bool _expandedTotalizacoes; + + private bool _expandedFinanceiros; + + private bool _expandedFerramentas; + + private bool _expandedAjudas; + + private ObservableCollection _seguros; + + private ObservableCollection _ferramentas; + + private ObservableCollection _arquivosDigitais; + + private bool _enableAlterarPermiss = true; + + private ObservableCollection _restricoesBisFiltradas; + + private ObservableCollection _restricoesSegurosFiltradas; + + private ObservableCollection _restricoesRelatoriosFiltrados; + + private ObservableCollection _restricoesTotalizacoesRelatoriosFiltrados; + + private ObservableCollection _restricoesCamposRelatoriosFiltrados; + + private ObservableCollection _restricoesFinanceirosFiltradas; + + private ObservableCollection _restricoesFerramentasFiltradas; + + private ObservableCollection _restricoesAjudasFiltrados; + + private List _restricoesBis; + + private List _restricoesSeguros; + + private List _restricoesRelatorios; + + private List _restricoesTotalizacoesRelatorios; + + private List _restricoesCamposRelatorios; + + private List _restricoesFinanceiros; + + private List _restricoesFerramentas; + + private List _restricoesAjudas; + + private Visibility _restricoesBisVisibility; + + private Visibility _restricoesSegurosVisibility; + + private Visibility _restricoesRelatoriosVisibility; + + private Visibility _restricoesTotalizacoesRelatoriosVisibility; + + private Visibility _restricoesCamposRelatoriosVisibility; + + private Visibility _restricoesFinanceirosVisibility; + + private Visibility _restricoesFerramentasVisibility; + + private Visibility _restricoesAjudasVisibility; + + private List _permissaoAggilizador; + + private Gestor.Model.Common.PermissaoAggilizador _selectedPermissao; + + private bool _admUsuario; + + private bool _importarEnabled; + + private bool _carregando; + + private bool _ativarDesativarPermissoesBool = true; + + private bool _ativarDesativarRestricoesBool = true; + + public bool AdmUsuario + { + get + { + return this._admUsuario; + } + set + { + this._admUsuario = value; + this.ImportarEnabled = !value; + this.SelectedUsuario.set_Administrador(value); + if (value && !this.Carregando) + { + this.AtivarDesativarPermissoes(true); + this.AtivarDesativarRestricoes(false); + } + base.OnPropertyChanged("AdmUsuario"); + } + } + + public ObservableCollection ArquivosDigitais + { + get + { + return this._arquivosDigitais; + } + set + { + this._arquivosDigitais = value; + base.OnPropertyChanged("ArquivosDigitais"); + Gestor.Application.Actions.Actions.OcultarTogglesArquivoDigital(); + } + } + + public bool AtivarDesativarPermissoesBool + { + get + { + return this._ativarDesativarPermissoesBool; + } + set + { + this._ativarDesativarPermissoesBool = value; + base.OnPropertyChanged("AtivarDesativarPermissoesBool"); + } + } + + public bool AtivarDesativarRestricoesBool + { + get + { + return this._ativarDesativarRestricoesBool; + } + set + { + this._ativarDesativarRestricoesBool = value; + base.OnPropertyChanged("AtivarDesativarRestricoesBool"); + } + } + + public bool Carregado + { + get; + set; + } + + public bool Carregando + { + get + { + return this._carregando; + } + set + { + this._carregando = value; + base.IsEnabled = !value; + base.EnableMenu = !value; + base.OnPropertyChanged("Carregando"); + } + } + + public bool EnableAlterarPermiss + { + get + { + return this._enableAlterarPermiss; + } + set + { + this._enableAlterarPermiss = value; + base.OnPropertyChanged("EnableAlterarPermiss"); + } + } + + public bool ExpandedAjudas + { + get + { + return this._expandedAjudas; + } + set + { + this._expandedAjudas = value; + base.OnPropertyChanged("ExpandedAjudas"); + } + } + + public bool ExpandedBis + { + get + { + return this._expandedBis; + } + set + { + this._expandedBis = value; + base.OnPropertyChanged("ExpandedBis"); + } + } + + public bool ExpandedCampos + { + get + { + return this._expandedCampos; + } + set + { + this._expandedCampos = value; + base.OnPropertyChanged("ExpandedCampos"); + } + } + + public bool ExpandedFerramentas + { + get + { + return this._expandedFerramentas; + } + set + { + this._expandedFerramentas = value; + base.OnPropertyChanged("ExpandedFerramentas"); + } + } + + public bool ExpandedFinanceiros + { + get + { + return this._expandedFinanceiros; + } + set + { + this._expandedFinanceiros = value; + base.OnPropertyChanged("ExpandedFinanceiros"); + } + } + + public bool ExpandedRelatorios + { + get + { + return this._expandedRelatorios; + } + set + { + this._expandedRelatorios = value; + base.OnPropertyChanged("ExpandedRelatorios"); + } + } + + public bool ExpandedSeguros + { + get + { + return this._expandedSeguros; + } + set + { + this._expandedSeguros = value; + base.OnPropertyChanged("ExpandedSeguros"); + } + } + + public bool ExpandedTotalizacoes + { + get + { + return this._expandedTotalizacoes; + } + set + { + this._expandedTotalizacoes = value; + base.OnPropertyChanged("ExpandedTotalizacoes"); + } + } + + public ObservableCollection Ferramentas + { + get + { + return this._ferramentas; + } + set + { + this._ferramentas = value; + base.OnPropertyChanged("Ferramentas"); + if (value != null && this.Seguros != null) + { + if (value.All((PermissaoUsuario x) => { + if (x.get_Tela() == 18 && x.get_Consultar() && x.get_Alterar() || x.get_Tela() == 10 && x.get_Consultar() && x.get_Alterar() && x.get_Incluir() || x.get_Tela() == 12 && x.get_Consultar() && x.get_Alterar() || x.get_Tela() == 13 && x.get_Consultar() && x.get_Alterar() && x.get_Incluir()) + { + return true; + } + if (x.get_Tela() == 18 || x.get_Tela() == 10 || x.get_Tela() == 12 || x.get_Tela() == 13 || !x.get_Consultar() || !x.get_Alterar() || !x.get_Incluir()) + { + return false; + } + return x.get_Excluir(); + })) + { + if (this.Seguros.All((PermissaoUsuario x) => { + if (x.get_Tela() == 21 && x.get_Consultar() || x.get_Tela() == 5 && x.get_Alterar() && x.get_Incluir() && x.get_Excluir()) + { + return true; + } + if (x.get_Tela() == 21 || x.get_Tela() == 5 || !x.get_Consultar() || !x.get_Alterar() || !x.get_Incluir()) + { + return false; + } + return x.get_Excluir(); + })) + { + this.AtivarDesativarPermissoesBool = false; + } + } + } + Gestor.Application.Actions.Actions.OcultarTogglesFerramentas(); + } + } + + public bool ImportarEnabled + { + get + { + return this._importarEnabled; + } + set + { + this._importarEnabled = value; + base.OnPropertyChanged("ImportarEnabled"); + } + } + + public List PermissaoAggilizador + { + get + { + return this._permissaoAggilizador; + } + set + { + this._permissaoAggilizador = value; + base.OnPropertyChanged("PermissaoAggilizador"); + } + } + + public List RestricoesAjudas + { + get + { + return this._restricoesAjudas; + } + set + { + this._restricoesAjudas = value; + base.OnPropertyChanged("RestricoesAjudas"); + } + } + + public ObservableCollection RestricoesAjudasFiltrados + { + get + { + return this._restricoesAjudasFiltrados; + } + set + { + this.RestricoesAjudasVisibility = (value == null || value.Count <= 0 ? Visibility.Collapsed : Visibility.Visible); + this._restricoesAjudasFiltrados = new ObservableCollection( + from x in value.ToList() + orderby ValidationHelper.GetDescription(x.get_Tipo()) + select x); + base.OnPropertyChanged("RestricoesAjudasFiltrados"); + this.AtivarDesativarRestricoes(); + } + } + + public Visibility RestricoesAjudasVisibility + { + get + { + return this._restricoesAjudasVisibility; + } + set + { + this._restricoesAjudasVisibility = value; + base.OnPropertyChanged("RestricoesAjudasVisibility"); + } + } + + public List RestricoesBis + { + get + { + return this._restricoesBis; + } + set + { + this._restricoesBis = value; + base.OnPropertyChanged("RestricoesBis"); + } + } + + public ObservableCollection RestricoesBisFiltradas + { + get + { + return this._restricoesBisFiltradas; + } + set + { + this.RestricoesBisVisibility = (value == null || value.Count <= 0 ? Visibility.Collapsed : Visibility.Visible); + this._restricoesBisFiltradas = new ObservableCollection( + from x in value.ToList() + orderby ValidationHelper.GetDescription(x.get_Tipo()) + select x); + base.OnPropertyChanged("RestricoesBisFiltradas"); + this.AtivarDesativarRestricoes(); + } + } + + public Visibility RestricoesBisVisibility + { + get + { + return this._restricoesBisVisibility; + } + set + { + this._restricoesBisVisibility = value; + base.OnPropertyChanged("RestricoesBisVisibility"); + } + } + + public List RestricoesCamposRelatorios + { + get + { + return this._restricoesCamposRelatorios; + } + set + { + this._restricoesCamposRelatorios = value; + base.OnPropertyChanged("RestricoesCamposRelatorios"); + } + } + + public ObservableCollection RestricoesCamposRelatoriosFiltrados + { + get + { + return this._restricoesCamposRelatoriosFiltrados; + } + set + { + this.RestricoesCamposRelatoriosVisibility = (value == null || value.Count <= 0 ? Visibility.Collapsed : Visibility.Visible); + this._restricoesCamposRelatoriosFiltrados = new ObservableCollection( + from x in value.ToList() + orderby x.get_Relatorio(), x.get_Campo() + select x); + base.OnPropertyChanged("RestricoesCamposRelatoriosFiltrados"); + this.AtivarDesativarRestricoes(); + } + } + + public Visibility RestricoesCamposRelatoriosVisibility + { + get + { + return this._restricoesCamposRelatoriosVisibility; + } + set + { + this._restricoesCamposRelatoriosVisibility = value; + base.OnPropertyChanged("RestricoesCamposRelatoriosVisibility"); + } + } + + public List RestricoesFerramentas + { + get + { + return this._restricoesFerramentas; + } + set + { + this._restricoesFerramentas = value; + base.OnPropertyChanged("RestricoesFerramentas"); + } + } + + public ObservableCollection RestricoesFerramentasFiltradas + { + get + { + return this._restricoesFerramentasFiltradas; + } + set + { + this.RestricoesFerramentasVisibility = (value == null || value.Count <= 0 ? Visibility.Collapsed : Visibility.Visible); + this._restricoesFerramentasFiltradas = new ObservableCollection( + from x in value.ToList() + orderby ValidationHelper.GetDescription(x.get_Tipo()) + select x); + base.OnPropertyChanged("RestricoesFerramentasFiltradas"); + this.AtivarDesativarRestricoes(); + } + } + + public Visibility RestricoesFerramentasVisibility + { + get + { + return this._restricoesFerramentasVisibility; + } + set + { + this._restricoesFerramentasVisibility = value; + base.OnPropertyChanged("RestricoesFerramentasVisibility"); + } + } + + public List RestricoesFinanceiros + { + get + { + return this._restricoesFinanceiros; + } + set + { + this._restricoesFinanceiros = value; + base.OnPropertyChanged("RestricoesFinanceiros"); + } + } + + public ObservableCollection RestricoesFinanceirosFiltradas + { + get + { + return this._restricoesFinanceirosFiltradas; + } + set + { + this.RestricoesFinanceirosVisibility = (value == null || value.Count <= 0 ? Visibility.Collapsed : Visibility.Visible); + this._restricoesFinanceirosFiltradas = new ObservableCollection( + from x in value.ToList() + orderby ValidationHelper.GetDescription(x.get_Tipo()) + select x); + base.OnPropertyChanged("RestricoesFinanceirosFiltradas"); + this.AtivarDesativarRestricoes(); + } + } + + public Visibility RestricoesFinanceirosVisibility + { + get + { + return this._restricoesFinanceirosVisibility; + } + set + { + this._restricoesFinanceirosVisibility = value; + base.OnPropertyChanged("RestricoesFinanceirosVisibility"); + } + } + + public List RestricoesRelatorios + { + get + { + return this._restricoesRelatorios; + } + set + { + this._restricoesRelatorios = value; + base.OnPropertyChanged("RestricoesRelatorios"); + } + } + + public ObservableCollection RestricoesRelatoriosFiltrados + { + get + { + return this._restricoesRelatoriosFiltrados; + } + set + { + this.RestricoesRelatoriosVisibility = (value == null || value.Count <= 0 ? Visibility.Collapsed : Visibility.Visible); + this._restricoesRelatoriosFiltrados = new ObservableCollection( + from x in value.ToList() + orderby ValidationHelper.GetDescription(x.get_Tipo()) + select x); + base.OnPropertyChanged("RestricoesRelatoriosFiltrados"); + this.AtivarDesativarRestricoes(); + } + } + + public Visibility RestricoesRelatoriosVisibility + { + get + { + return this._restricoesRelatoriosVisibility; + } + set + { + this._restricoesRelatoriosVisibility = value; + base.OnPropertyChanged("RestricoesRelatoriosVisibility"); + } + } + + public List RestricoesSeguros + { + get + { + return this._restricoesSeguros; + } + set + { + this._restricoesSeguros = value; + base.OnPropertyChanged("RestricoesSeguros"); + } + } + + public ObservableCollection RestricoesSegurosFiltradas + { + get + { + return this._restricoesSegurosFiltradas; + } + set + { + this.RestricoesSegurosVisibility = (value == null || value.Count <= 0 ? Visibility.Collapsed : Visibility.Visible); + this._restricoesSegurosFiltradas = new ObservableCollection( + from x in value.ToList() + orderby ValidationHelper.GetDescription(x.get_Tipo()) + select x); + base.OnPropertyChanged("RestricoesSegurosFiltradas"); + this.AtivarDesativarRestricoes(); + } + } + + public Visibility RestricoesSegurosVisibility + { + get + { + return this._restricoesSegurosVisibility; + } + set + { + this._restricoesSegurosVisibility = value; + base.OnPropertyChanged("RestricoesSegurosVisibility"); + } + } + + public List RestricoesTotalizacoesRelatorios + { + get + { + return this._restricoesTotalizacoesRelatorios; + } + set + { + this._restricoesTotalizacoesRelatorios = value; + base.OnPropertyChanged("RestricoesTotalizacoesRelatorios"); + } + } + + public ObservableCollection RestricoesTotalizacoesRelatoriosFiltrados + { + get + { + return this._restricoesTotalizacoesRelatoriosFiltrados; + } + set + { + this.RestricoesTotalizacoesRelatoriosVisibility = (value == null || value.Count <= 0 ? Visibility.Collapsed : Visibility.Visible); + this._restricoesTotalizacoesRelatoriosFiltrados = new ObservableCollection( + from x in value.ToList() + orderby ValidationHelper.GetDescription(x.get_Tipo()) + select x); + base.OnPropertyChanged("RestricoesTotalizacoesRelatoriosFiltrados"); + this.AtivarDesativarRestricoes(); + } + } + + public Visibility RestricoesTotalizacoesRelatoriosVisibility + { + get + { + return this._restricoesTotalizacoesRelatoriosVisibility; + } + set + { + this._restricoesTotalizacoesRelatoriosVisibility = value; + base.OnPropertyChanged("RestricoesTotalizacoesRelatoriosVisibility"); + } + } + + public ObservableCollection Seguros + { + get + { + return this._seguros; + } + set + { + this._seguros = value; + base.OnPropertyChanged("Seguros"); + if (value != null && this.Ferramentas != null) + { + if (value.All((PermissaoUsuario x) => { + if (x.get_Tela() == 21 && x.get_Consultar() || x.get_Tela() == 5 && x.get_Alterar() && x.get_Incluir() && x.get_Excluir()) + { + return true; + } + if (x.get_Tela() == 21 || x.get_Tela() == 5 || !x.get_Consultar() || !x.get_Alterar() || !x.get_Incluir()) + { + return false; + } + return x.get_Excluir(); + })) + { + if (this.Ferramentas.All((PermissaoUsuario x) => { + if (x.get_Tela() == 18 && x.get_Consultar() && x.get_Alterar() || x.get_Tela() == 10 && x.get_Consultar() && x.get_Alterar() && x.get_Incluir() || x.get_Tela() == 12 && x.get_Consultar() && x.get_Alterar() || x.get_Tela() == 13 && x.get_Consultar() && x.get_Alterar() && x.get_Incluir()) + { + return true; + } + if (x.get_Tela() == 18 || x.get_Tela() == 10 || x.get_Tela() == 12 || x.get_Tela() == 13 || !x.get_Consultar() || !x.get_Alterar() || !x.get_Incluir()) + { + return false; + } + return x.get_Excluir(); + })) + { + this.AtivarDesativarPermissoesBool = false; + } + } + } + Gestor.Application.Actions.Actions.OcultarTogglesSeguros(); + } + } + + public Gestor.Model.Common.PermissaoAggilizador SelectedPermissao + { + get + { + return this._selectedPermissao; + } + set + { + this._selectedPermissao = value; + base.OnPropertyChanged("SelectedPermissao"); + } + } + + public Usuario SelectedUsuario + { + get + { + return this._selectedUsuario; + } + set + { + this._selectedUsuario = value; + base.OnPropertyChanged("SelectedUsuario"); + } + } + + public PermissaoUsuarioViewModel(Usuario usuario) + { + this.SelectedUsuario = usuario; + this._servicoUsuario = new UsuarioServico(); + this.CarregarModulos(usuario); + this.EnableAlterarPermiss = Recursos.Usuario.get_Id() > (long)0; + } + + public void AtivarDesativarPermissoes(bool permiss) + { + Gestor.Model.Common.PermissaoAggilizador permissaoAggilizador; + this.AtivarDesativarPermissoesBool = !permiss; + this.Seguros.ToList().ForEach((PermissaoUsuario x) => { + x.set_Consultar(permiss); + x.set_Incluir(permiss); + x.set_Alterar(permiss); + x.set_Excluir(permiss); + }); + this.Ferramentas.ToList().ForEach((PermissaoUsuario x) => { + x.set_Consultar(permiss); + x.set_Incluir(permiss); + x.set_Alterar(permiss); + x.set_Excluir(permiss); + }); + this.ArquivosDigitais.ToList().ForEach((PermissaoArquivoDigital x) => { + x.set_Consultar(permiss); + x.set_Incluir(permiss); + x.set_Excluir(permiss); + }); + if (permiss) + { + permissaoAggilizador = this.PermissaoAggilizador.FirstOrDefault((Gestor.Model.Common.PermissaoAggilizador x) => x.get_Descricao() == "ADMINISTRADOR"); + } + else + { + permissaoAggilizador = null; + } + this.SelectedPermissao = permissaoAggilizador; + this.Seguros = new ObservableCollection(this.Seguros); + this.Ferramentas = new ObservableCollection(this.Ferramentas); + this.ArquivosDigitais = new ObservableCollection(this.ArquivosDigitais); + } + + public void AtivarDesativarRestricoes(bool restricao) + { + this.AtivarDesativarRestricoesBool = !restricao; + foreach (RestricaoUsuario restricoesBisFiltrada in this.RestricoesBisFiltradas) + { + restricoesBisFiltrada.set_Restricao(restricao); + } + foreach (RestricaoUsuario restricoesSegurosFiltrada in this.RestricoesSegurosFiltradas) + { + restricoesSegurosFiltrada.set_Restricao(restricao); + } + foreach (RestricaoUsuario restricoesRelatoriosFiltrado in this.RestricoesRelatoriosFiltrados) + { + restricoesRelatoriosFiltrado.set_Restricao(restricao); + } + foreach (RestricaoUsuario restricoesTotalizacoesRelatoriosFiltrado in this.RestricoesTotalizacoesRelatoriosFiltrados) + { + restricoesTotalizacoesRelatoriosFiltrado.set_Restricao(restricao); + } + foreach (RestricaoUsuarioCamposRelatorios restricoesCamposRelatoriosFiltrado in this.RestricoesCamposRelatoriosFiltrados) + { + restricoesCamposRelatoriosFiltrado.set_Restricao(restricao); + } + foreach (RestricaoUsuario restricoesFinanceirosFiltrada in this.RestricoesFinanceirosFiltradas) + { + restricoesFinanceirosFiltrada.set_Restricao(restricao); + } + foreach (RestricaoUsuario restricoesFerramentasFiltrada in this.RestricoesFerramentasFiltradas) + { + restricoesFerramentasFiltrada.set_Restricao(restricao); + } + foreach (RestricaoUsuario restricoesAjudasFiltrado in this.RestricoesAjudasFiltrados) + { + restricoesAjudasFiltrado.set_Restricao(restricao); + } + this.RestricoesBisFiltradas = new ObservableCollection(this.RestricoesBisFiltradas); + this.RestricoesSegurosFiltradas = new ObservableCollection(this.RestricoesSegurosFiltradas); + this.RestricoesRelatoriosFiltrados = new ObservableCollection(this.RestricoesRelatoriosFiltrados); + this.RestricoesTotalizacoesRelatoriosFiltrados = new ObservableCollection(this.RestricoesTotalizacoesRelatoriosFiltrados); + this.RestricoesCamposRelatoriosFiltrados = new ObservableCollection(this.RestricoesCamposRelatoriosFiltrados); + this.RestricoesFinanceirosFiltradas = new ObservableCollection(this.RestricoesFinanceirosFiltradas); + this.RestricoesFerramentasFiltradas = new ObservableCollection(this.RestricoesFerramentasFiltradas); + this.RestricoesAjudasFiltrados = new ObservableCollection(this.RestricoesAjudasFiltrados); + } + + public void AtivarDesativarRestricoes() + { + if (this.RestricoesBisFiltradas != null && this.RestricoesAjudasFiltrados != null && this.RestricoesSegurosFiltradas != null && this.RestricoesRelatoriosFiltrados != null && this.RestricoesFinanceirosFiltradas != null && this.RestricoesFerramentasFiltradas != null && this.RestricoesTotalizacoesRelatoriosFiltrados != null && this.RestricoesCamposRelatoriosFiltrados != null) + { + if (this.RestricoesBisFiltradas.All((RestricaoUsuario x) => x.get_Restricao())) + { + if (this.RestricoesAjudasFiltrados.All((RestricaoUsuario x) => x.get_Restricao())) + { + if (this.RestricoesSegurosFiltradas.All((RestricaoUsuario x) => x.get_Restricao())) + { + if (this.RestricoesRelatoriosFiltrados.All((RestricaoUsuario x) => x.get_Restricao())) + { + if (this.RestricoesFinanceirosFiltradas.All((RestricaoUsuario x) => x.get_Restricao())) + { + if (this.RestricoesFerramentasFiltradas.All((RestricaoUsuario x) => x.get_Restricao())) + { + if (this.RestricoesTotalizacoesRelatoriosFiltrados.All((RestricaoUsuario x) => x.get_Restricao())) + { + if (this.RestricoesCamposRelatoriosFiltrados.All((RestricaoUsuarioCamposRelatorios x) => x.get_Restricao())) + { + this.AtivarDesativarRestricoesBool = false; + } + } + } + } + } + } + } + } + } + } + + private async void CarregarModulos(Usuario usuario) + { + await this.Modulos(usuario); + this.Carregado = true; + } + + public bool CopiarPermissoes(Tuple, Usuario, List, List, List> copiarPermiss) + { + Gestor.Model.Common.PermissaoAggilizador permissaoAggilizador1; + if (copiarPermiss.Item1.Count <= 0) + { + this.Seguros.ToList().ForEach((PermissaoUsuario x) => { + x.set_Consultar(false); + x.set_Incluir(false); + x.set_Alterar(false); + x.set_Excluir(false); + x.set_Usuario(this._selectedUsuario); + }); + this.Ferramentas.ToList().ForEach((PermissaoUsuario x) => { + x.set_Consultar(false); + x.set_Incluir(false); + x.set_Alterar(false); + x.set_Excluir(false); + x.set_Usuario(this._selectedUsuario); + }); + } + else + { + copiarPermiss.Item1.ForEach((PermissaoUsuario x) => { + this.Seguros.ToList().ForEach((PermissaoUsuario y) => { + if (x.get_Tela() != y.get_Tela()) + { + return; + } + y.set_Consultar(x.get_Consultar()); + y.set_Incluir(x.get_Incluir()); + y.set_Alterar(x.get_Alterar()); + y.set_Excluir(x.get_Excluir()); + y.set_Usuario(this._selectedUsuario); + }); + this.Ferramentas.ToList().ForEach((PermissaoUsuario y) => { + if (x.get_Tela() != y.get_Tela()) + { + return; + } + y.set_Consultar(x.get_Consultar()); + y.set_Incluir(x.get_Incluir()); + y.set_Alterar(x.get_Alterar()); + y.set_Excluir(x.get_Excluir()); + y.set_Usuario(this._selectedUsuario); + }); + }); + } + if (copiarPermiss.Item4.Count <= 0) + { + this.ArquivosDigitais.ToList().ForEach((PermissaoArquivoDigital x) => { + x.set_Consultar(false); + x.set_Incluir(false); + x.set_Excluir(false); + x.set_Usuario(this._selectedUsuario); + }); + } + else + { + copiarPermiss.Item4.ForEach((PermissaoArquivoDigital x) => this.ArquivosDigitais.ToList().ForEach((PermissaoArquivoDigital y) => { + if (x.get_Tela() != y.get_Tela()) + { + return; + } + y.set_Consultar(x.get_Consultar()); + y.set_Incluir(x.get_Incluir()); + y.set_Excluir(x.get_Excluir()); + y.set_Usuario(this._selectedUsuario); + })); + } + if (copiarPermiss.Item2.get_PermissaoAggilizador().HasValue) + { + permissaoAggilizador1 = this.PermissaoAggilizador.FirstOrDefault((Gestor.Model.Common.PermissaoAggilizador x) => { + long id = x.get_Id(); + long? permissaoAggilizador = copiarPermiss.Item2.get_PermissaoAggilizador(); + return id == permissaoAggilizador.GetValueOrDefault() & permissaoAggilizador.HasValue; + }); + } + else + { + permissaoAggilizador1 = null; + } + this.SelectedPermissao = permissaoAggilizador1; + copiarPermiss.Item3.ForEach((RestricaoUsuario x) => { + foreach (RestricaoUsuario restricoesBi in this.RestricoesBis) + { + if (restricoesBi.get_Tipo() != x.get_Tipo()) + { + continue; + } + restricoesBi.set_Restricao(x.get_Restricao()); + restricoesBi.set_Usuario(this._selectedUsuario); + } + foreach (RestricaoUsuario restricoesSeguro in this.RestricoesSeguros) + { + if (restricoesSeguro.get_Tipo() != x.get_Tipo()) + { + continue; + } + restricoesSeguro.set_Restricao(x.get_Restricao()); + restricoesSeguro.set_Usuario(this._selectedUsuario); + } + foreach (RestricaoUsuario restricoesRelatorio in this.RestricoesRelatorios) + { + if (restricoesRelatorio.get_Tipo() != x.get_Tipo()) + { + continue; + } + restricoesRelatorio.set_Restricao(x.get_Restricao()); + restricoesRelatorio.set_Usuario(this._selectedUsuario); + } + foreach (RestricaoUsuario restricoesTotalizacoesRelatorio in this.RestricoesTotalizacoesRelatorios) + { + if (restricoesTotalizacoesRelatorio.get_Tipo() != x.get_Tipo()) + { + continue; + } + restricoesTotalizacoesRelatorio.set_Restricao(x.get_Restricao()); + restricoesTotalizacoesRelatorio.set_Usuario(this._selectedUsuario); + } + foreach (RestricaoUsuario restricoesFinanceiro in this.RestricoesFinanceiros) + { + if (restricoesFinanceiro.get_Tipo() != x.get_Tipo()) + { + continue; + } + restricoesFinanceiro.set_Restricao(x.get_Restricao()); + restricoesFinanceiro.set_Usuario(this._selectedUsuario); + } + foreach (RestricaoUsuario restricoesFerramenta in this.RestricoesFerramentas) + { + if (restricoesFerramenta.get_Tipo() != x.get_Tipo()) + { + continue; + } + restricoesFerramenta.set_Restricao(x.get_Restricao()); + restricoesFerramenta.set_Usuario(this._selectedUsuario); + } + foreach (RestricaoUsuario restricoesAjuda in this.RestricoesAjudas) + { + if (restricoesAjuda.get_Tipo() != x.get_Tipo()) + { + continue; + } + restricoesAjuda.set_Restricao(x.get_Restricao()); + restricoesAjuda.set_Usuario(this._selectedUsuario); + } + }); + copiarPermiss.Item5.ForEach((RestricaoUsuarioCamposRelatorios x) => { + foreach (RestricaoUsuarioCamposRelatorios restricoesCamposRelatorio in this.RestricoesCamposRelatorios) + { + if (!(restricoesCamposRelatorio.get_Campo() == x.get_Campo()) || restricoesCamposRelatorio.get_Relatorio() != x.get_Relatorio()) + { + continue; + } + restricoesCamposRelatorio.set_Restricao(x.get_Restricao()); + restricoesCamposRelatorio.set_Usuario(this._selectedUsuario); + } + }); + base.RegistrarAcao(string.Concat("IMPORTOU PERMISSÕES/RESTRIÇÕES DO USUÁRIO \"", copiarPermiss.Item2.get_Nome(), "\""), this.SelectedUsuario.get_Id(), new TipoTela?(43), string.Format("ID USUÁRIO: {0}", copiarPermiss.Item2.get_Id())); + return true; + } + + public void DesabilitarArquivoDigital(PermissaoArquivoDigital desabilitar) + { + PermissaoArquivoDigital permissaoArquivoDigital = this.ArquivosDigitais.First((PermissaoArquivoDigital x) => x.get_Tela() == desabilitar.get_Tela()); + if (!permissaoArquivoDigital.get_Incluir() && !permissaoArquivoDigital.get_Excluir()) + { + return; + } + permissaoArquivoDigital.set_Incluir(false); + permissaoArquivoDigital.set_Excluir(false); + this.ArquivosDigitais = new ObservableCollection(this.ArquivosDigitais); + } + + public void DesabilitarConsulta(PermissaoUsuario desabilitar, string source) + { + if (source != "Ferramentas") + { + PermissaoUsuario permissaoUsuario = this.Seguros.First((PermissaoUsuario x) => x.get_Tela() == desabilitar.get_Tela()); + if (!permissaoUsuario.get_Incluir() && !permissaoUsuario.get_Alterar() && !permissaoUsuario.get_Excluir()) + { + return; + } + permissaoUsuario.set_Alterar(false); + permissaoUsuario.set_Incluir(false); + permissaoUsuario.set_Excluir(false); + this.Seguros = new ObservableCollection(this.Seguros); + return; + } + PermissaoUsuario permissaoUsuario1 = this.Ferramentas.First((PermissaoUsuario x) => x.get_Tela() == desabilitar.get_Tela()); + if (!permissaoUsuario1.get_Incluir() && !permissaoUsuario1.get_Alterar() && !permissaoUsuario1.get_Excluir()) + { + return; + } + permissaoUsuario1.set_Alterar(false); + permissaoUsuario1.set_Incluir(false); + permissaoUsuario1.set_Excluir(false); + this.Ferramentas = new ObservableCollection(this.Ferramentas); + } + + public async Task ExportarPermissoes(List usuarios) + { + object obj; + List usuarios1 = usuarios; + foreach (Usuario usuario in + from x in usuarios1 + where x.get_Selecionado() + select x) + { + await this.Salvar(new long?(usuario.get_Id()), false); + } + PermissaoUsuarioViewModel permissaoUsuarioViewModel = this; + string nome = this.SelectedUsuario.get_Nome(); + object count = usuarios.Count; + obj = (usuarios.Count == 1 ? "" : "S"); + string str = string.Format("EXPORTOU PERMISSÕES/RESTRIÇÕES DO USUÁRIO \"{0}\" PARA {1} USUÁRIO{2}", nome, count, obj); + long id = this.SelectedUsuario.get_Id(); + TipoTela? nullable = new TipoTela?(43); + List usuarios2 = usuarios; + permissaoUsuarioViewModel.RegistrarAcao(str, id, nullable, string.Concat("IDS E NOMES DOS USUÁRIOS: ", string.Join("\n", + from x in usuarios2 + select string.Format("{0}: \"{1}\"", x.get_Id(), x.get_Nome())))); + return true; + } + + internal async Task> FiltrarRestricoesAjuda(string value) + { + List restricaoUsuarios = await Task.Run>(() => this.FiltrarRestricoesAjudas(value)); + return restricaoUsuarios; + } + + public List FiltrarRestricoesAjudas(string filter) + { + this.RestricoesAjudasFiltrados = (filter == "" ? new ObservableCollection(this.RestricoesAjudas) : new ObservableCollection( + from x in this.RestricoesAjudas + where ValidationHelper.RemoveDiacritics(ValidationHelper.GetDescription(x.get_Tipo()).Trim()).ToUpper().Contains(filter.ToUpper()) + select x)); + this.ExpandedAjudas = (this.RestricoesAjudasFiltrados.Count <= 0 ? false : filter != ""); + if (filter == "") + { + return null; + } + return this.RestricoesAjudasFiltrados.ToList(); + } + + internal async Task> FiltrarRestricoesBi(string value) + { + List restricaoUsuarios = await Task.Run>(() => this.FiltrarRestricoesBis(value)); + return restricaoUsuarios; + } + + public List FiltrarRestricoesBis(string filter) + { + this.RestricoesBisFiltradas = (filter == "" ? new ObservableCollection(this.RestricoesBis) : new ObservableCollection( + from x in this.RestricoesBis + where ValidationHelper.RemoveDiacritics(ValidationHelper.GetDescription(x.get_Tipo()).Trim()).ToUpper().Contains(filter.ToUpper()) + select x)); + this.ExpandedBis = (this.RestricoesBisFiltradas.Count <= 0 ? false : filter != ""); + if (filter == "") + { + return null; + } + return this.RestricoesBisFiltradas.ToList(); + } + + internal async Task> FiltrarRestricoesCamposRelatorio(string value) + { + List restricaoUsuarioCamposRelatorios = await Task.Run>(() => this.FiltrarRestricoesCamposRelatorios(value)); + return restricaoUsuarioCamposRelatorios; + } + + public List FiltrarRestricoesCamposRelatorios(string filter) + { + this.RestricoesCamposRelatoriosFiltrados = (filter == "" ? new ObservableCollection(this.RestricoesCamposRelatorios) : new ObservableCollection(this.RestricoesCamposRelatorios.Where((RestricaoUsuarioCamposRelatorios x) => { + if (ValidationHelper.RemoveDiacritics(x.get_Campo().ToUpper().Trim()).Contains(filter.ToUpper())) + { + return true; + } + return ValidationHelper.RemoveDiacritics(ValidationHelper.GetDescription(x.get_Relatorio()).Trim()).ToUpper().Contains(filter.ToUpper()); + }))); + this.ExpandedCampos = (this.RestricoesCamposRelatoriosFiltrados.Count <= 0 ? false : filter != ""); + if (filter == "") + { + return null; + } + return this.RestricoesCamposRelatoriosFiltrados.ToList(); + } + + internal async Task> FiltrarRestricoesFerramenta(string value) + { + List restricaoUsuarios = await Task.Run>(() => this.FiltrarRestricoesFerramentas(value)); + return restricaoUsuarios; + } + + public List FiltrarRestricoesFerramentas(string filter) + { + this.RestricoesFerramentasFiltradas = (filter == "" ? new ObservableCollection(this.RestricoesFerramentas) : new ObservableCollection( + from x in this.RestricoesFerramentas + where ValidationHelper.RemoveDiacritics(ValidationHelper.GetDescription(x.get_Tipo()).Trim()).ToUpper().Contains(filter.ToUpper()) + select x)); + this.ExpandedFerramentas = (this.RestricoesFerramentasFiltradas.Count <= 0 ? false : filter != ""); + if (filter == "") + { + return null; + } + return this.RestricoesFerramentasFiltradas.ToList(); + } + + internal async Task> FiltrarRestricoesFinanceiro(string value) + { + List restricaoUsuarios = await Task.Run>(() => this.FiltrarRestricoesFinanceiros(value)); + return restricaoUsuarios; + } + + public List FiltrarRestricoesFinanceiros(string filter) + { + this.RestricoesFinanceirosFiltradas = (filter == "" ? new ObservableCollection(this.RestricoesFinanceiros) : new ObservableCollection( + from x in this.RestricoesFinanceiros + where ValidationHelper.RemoveDiacritics(ValidationHelper.GetDescription(x.get_Tipo()).Trim()).ToUpper().Contains(filter.ToUpper()) + select x)); + this.ExpandedFinanceiros = (this.RestricoesFinanceirosFiltradas.Count <= 0 ? false : filter != ""); + if (filter == "") + { + return null; + } + return this.RestricoesFinanceirosFiltradas.ToList(); + } + + internal async Task> FiltrarRestricoesRelatorio(string value) + { + List restricaoUsuarios = await Task.Run>(() => this.FiltrarRestricoesRelatorios(value)); + return restricaoUsuarios; + } + + public List FiltrarRestricoesRelatorios(string filter) + { + this.RestricoesRelatoriosFiltrados = (filter == "" ? new ObservableCollection(this.RestricoesRelatorios) : new ObservableCollection( + from x in this.RestricoesRelatorios + where ValidationHelper.RemoveDiacritics(ValidationHelper.GetDescription(x.get_Tipo()).Trim()).ToUpper().Contains(filter.ToUpper()) + select x)); + this.ExpandedRelatorios = (this.RestricoesRelatoriosFiltrados.Count <= 0 ? false : filter != ""); + if (filter == "") + { + return null; + } + return this.RestricoesRelatoriosFiltrados.ToList(); + } + + internal async Task> FiltrarRestricoesSeguro(string value) + { + List restricaoUsuarios = await Task.Run>(() => this.FiltrarRestricoesSeguros(value)); + return restricaoUsuarios; + } + + public List FiltrarRestricoesSeguros(string filter) + { + this.RestricoesSegurosFiltradas = (filter == "" ? new ObservableCollection(this.RestricoesSeguros) : new ObservableCollection( + from x in this.RestricoesSeguros + where ValidationHelper.RemoveDiacritics(ValidationHelper.GetDescription(x.get_Tipo()).Trim()).ToUpper().Contains(filter.ToUpper()) + select x)); + this.ExpandedSeguros = (this.RestricoesSegurosFiltradas.Count <= 0 ? false : filter != ""); + if (filter == "") + { + return null; + } + return this.RestricoesSegurosFiltradas.ToList(); + } + + internal async Task> FiltrarRestricoesTotalizacoesRelatorio(string value) + { + List restricaoUsuarios = await Task.Run>(() => this.FiltrarRestricoesTotalizacoesRelatorios(value)); + return restricaoUsuarios; + } + + public List FiltrarRestricoesTotalizacoesRelatorios(string filter) + { + this.RestricoesTotalizacoesRelatoriosFiltrados = (filter == "" ? new ObservableCollection(this.RestricoesTotalizacoesRelatorios) : new ObservableCollection( + from x in this.RestricoesTotalizacoesRelatorios + where ValidationHelper.RemoveDiacritics(ValidationHelper.GetDescription(x.get_Tipo()).Trim()).ToUpper().Contains(filter.ToUpper()) + select x)); + this.ExpandedTotalizacoes = (this.RestricoesTotalizacoesRelatoriosFiltrados.Count <= 0 ? false : filter != ""); + if (filter == "") + { + return null; + } + return this.RestricoesTotalizacoesRelatoriosFiltrados.ToList(); + } + + private async Task> GetPermissoes(Usuario usuario, string modulo) + { + List permissaoUsuarios = new List(); + IEnumerable tipoTelas = Enum.GetValues(typeof(TipoTela)).Cast(); + IEnumerable str = + from v in tipoTelas + select v.ToString(); + List list = ( + from x in str + orderby x + select x).ToList(); + List permissaoUsuarios1 = await this.ServicoPermissUsuario.PermissUsuario(usuario); + list.ForEach((string x) => { + TipoTela tipoTela = (TipoTela)Enum.Parse(typeof(TipoTela), x); + if (!string.Equals(ValidationHelper.GetCategory(tipoTela), modulo, 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 y) => y.get_Tela() == tipoTela)) + { + id = permissaoUsuarios1.First((PermissaoUsuario y) => y.get_Tela() == tipoTela).get_Id(); + consultar = permissaoUsuarios1.First((PermissaoUsuario y) => y.get_Tela() == tipoTela).get_Consultar(); + incluir = permissaoUsuarios1.First((PermissaoUsuario y) => y.get_Tela() == tipoTela).get_Incluir(); + alterar = permissaoUsuarios1.First((PermissaoUsuario y) => y.get_Tela() == tipoTela).get_Alterar(); + excluir = permissaoUsuarios1.First((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 permissaoUsuarios2 = permissaoUsuarios; + list = null; + return permissaoUsuarios2; + } + + private async Task> GetPermissoesArquivoDigital(Usuario usuario) + { + List permissaoArquivoDigitals = new List(); + IEnumerable tipoArquivoDigitals = Enum.GetValues(typeof(TipoArquivoDigital)).Cast(); + IEnumerable str = + from v in tipoArquivoDigitals + select v.ToString(); + List list = ( + from x in str + orderby x + select x).ToList(); + List 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 y) => y.get_Tela() == tipoArquivoDigital)) + { + id = permissaoArquivoDigitals1.First((PermissaoArquivoDigital y) => y.get_Tela() == tipoArquivoDigital).get_Id(); + consultar = permissaoArquivoDigitals1.First((PermissaoArquivoDigital y) => y.get_Tela() == tipoArquivoDigital).get_Consultar(); + incluir = permissaoArquivoDigitals1.First((PermissaoArquivoDigital y) => y.get_Tela() == tipoArquivoDigital).get_Incluir(); + excluir = permissaoArquivoDigitals1.First((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 permissaoArquivoDigitals2 = permissaoArquivoDigitals; + list = null; + return permissaoArquivoDigitals2; + } + + private async Task> GetRestricoes(Usuario usuario, string modulo) + { + List restricaoUsuarios = new List(); + IEnumerable tipoRestricaos = Enum.GetValues(typeof(TipoRestricao)).Cast(); + IEnumerable str = + from v in tipoRestricaos + select v.ToString(); + List list = ( + from x in str + orderby x + select x).ToList(); + List restricaoUsuarios1 = await this.ServicoRestriUsuario.BuscarRestricoes(usuario.get_Id()); + List restricaoUsuarios2 = restricaoUsuarios1; + list.ForEach((string x) => { + TipoRestricao tipoRestricao = (TipoRestricao)Enum.Parse(typeof(TipoRestricao), x); + if (!string.Equals(ValidationHelper.GetCategory(tipoRestricao), modulo, StringComparison.CurrentCultureIgnoreCase)) + { + return; + } + string help = ValidationHelper.GetHelp(tipoRestricao); + long id = (long)0; + bool restricao = false; + if (restricaoUsuarios2.Count > 0 && restricaoUsuarios2.Any((RestricaoUsuario y) => y.get_Tipo() == tipoRestricao)) + { + id = restricaoUsuarios2.First((RestricaoUsuario y) => y.get_Tipo() == tipoRestricao).get_Id(); + restricao = restricaoUsuarios2.First((RestricaoUsuario y) => y.get_Tipo() == tipoRestricao).get_Restricao(); + } + RestricaoUsuario restricaoUsuario = new RestricaoUsuario(); + restricaoUsuario.set_Id(id); + restricaoUsuario.set_Tipo(tipoRestricao); + restricaoUsuario.set_Restricao(restricao); + restricaoUsuario.set_Ajuda(help); + restricaoUsuarios.Add(restricaoUsuario); + }); + List restricaoUsuarios3 = restricaoUsuarios; + list = null; + return restricaoUsuarios3; + } + + private async Task> GetRestricoesCamposRelatorios(Usuario usuario) + { + List restricaoUsuarioCamposRelatorios = new List(); + List parametrosRelatorios = new List(); + foreach (Relatorio relatorio in Enum.GetValues(typeof(Relatorio)).Cast()) + { + switch (relatorio) + { + case 0: + case 1: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 2: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 3: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 4: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 5: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 6: + case 16: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 7: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 8: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 9: + case 10: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 11: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 12: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 13: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 14: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 15: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 17: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 18: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 19: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 20: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 23: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + case 27: + { + parametrosRelatorios.AddRange(Funcoes.ColunasRelatorio(relatorio, new List())); + continue; + } + default: + { + continue; + } + } + } + List restricaoUsuarioCamposRelatorios1 = await this.ServicoRestriUsuario.BuscarRestricoesCamposRelatorios(usuario.get_Id()); + List restricaoUsuarioCamposRelatorios2 = restricaoUsuarioCamposRelatorios1; + parametrosRelatorios.ForEach((ParametrosRelatorio x) => { + long id = (long)0; + bool restricao = false; + if (restricaoUsuarioCamposRelatorios2.Count > 0 && restricaoUsuarioCamposRelatorios2.Any((RestricaoUsuarioCamposRelatorios y) => { + if (y.get_Campo() != x.get_Header()) + { + return false; + } + return y.get_Relatorio() == x.get_Relatorio(); + })) + { + id = restricaoUsuarioCamposRelatorios2.First((RestricaoUsuarioCamposRelatorios y) => { + if (y.get_Campo() != x.get_Header()) + { + return false; + } + return y.get_Relatorio() == x.get_Relatorio(); + }).get_Id(); + restricao = restricaoUsuarioCamposRelatorios2.First((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 restricaoUsuarioCamposRelatorios3 = restricaoUsuarioCamposRelatorios; + parametrosRelatorios = null; + return restricaoUsuarioCamposRelatorios3; + } + + public void HabilitarArquivoDigital(PermissaoArquivoDigital habilitar) + { + PermissaoArquivoDigital permissaoArquivoDigital = this.ArquivosDigitais.First((PermissaoArquivoDigital x) => x.get_Tela() == habilitar.get_Tela()); + if (permissaoArquivoDigital.get_Consultar()) + { + return; + } + permissaoArquivoDigital.set_Consultar(true); + this.ArquivosDigitais = new ObservableCollection(this.ArquivosDigitais); + } + + public void HabilitarConsulta(PermissaoUsuario habilitar, string source) + { + if (source != "Ferramentas") + { + PermissaoUsuario permissaoUsuario = this.Seguros.First((PermissaoUsuario x) => x.get_Tela() == habilitar.get_Tela()); + if (permissaoUsuario.get_Consultar()) + { + return; + } + permissaoUsuario.set_Consultar(true); + this.Seguros = new ObservableCollection(this.Seguros); + return; + } + PermissaoUsuario permissaoUsuario1 = this.Ferramentas.First((PermissaoUsuario x) => x.get_Tela() == habilitar.get_Tela()); + if (permissaoUsuario1.get_Consultar()) + { + return; + } + permissaoUsuario1.set_Consultar(true); + this.Ferramentas = new ObservableCollection(this.Ferramentas); + } + + private async Task Modulos(Usuario usuario) + { + Gestor.Model.Common.PermissaoAggilizador permissaoAggilizador1; + Usuario usuario1 = usuario; + this.Carregando = true; + Usuario usuario2 = await this._servicoUsuario.BuscarUsuarioPorId(usuario1.get_Id()); + usuario1 = usuario2; + this.Seguros = new ObservableCollection(await this.GetPermissoes(usuario1, "seguros")); + this.Ferramentas = new ObservableCollection(await this.GetPermissoes(usuario1, "ferramentas")); + this.ArquivosDigitais = new ObservableCollection(await this.GetPermissoesArquivoDigital(usuario1)); + this.PermissaoAggilizador = new List((IEnumerable)await this._servicoUsuario.BuscarPermissaoAggilizador()); + this.RestricoesBis = await this.GetRestricoes(usuario1, "b.i."); + this.RestricoesBisFiltradas = new ObservableCollection(this.RestricoesBis); + this.RestricoesSeguros = await this.GetRestricoes(usuario1, "seguros"); + this.RestricoesSegurosFiltradas = new ObservableCollection(this.RestricoesSeguros); + this.RestricoesRelatorios = await this.GetRestricoes(usuario1, "relatorios"); + this.RestricoesRelatoriosFiltrados = new ObservableCollection(this.RestricoesRelatorios); + this.RestricoesFinanceiros = await this.GetRestricoes(usuario1, "financeiro"); + this.RestricoesFinanceirosFiltradas = new ObservableCollection(this.RestricoesFinanceiros); + this.RestricoesFerramentas = await this.GetRestricoes(usuario1, "ferramentas"); + this.RestricoesFerramentasFiltradas = new ObservableCollection(this.RestricoesFerramentas); + this.RestricoesAjudas = await this.GetRestricoes(usuario1, "ajuda"); + this.RestricoesAjudasFiltrados = new ObservableCollection(this.RestricoesAjudas); + this.RestricoesTotalizacoesRelatorios = await this.GetRestricoes(usuario1, "totalizacoesRelatorios"); + this.RestricoesTotalizacoesRelatoriosFiltrados = new ObservableCollection(this.RestricoesTotalizacoesRelatorios); + this.RestricoesCamposRelatorios = await this.GetRestricoesCamposRelatorios(usuario1); + this.RestricoesCamposRelatoriosFiltrados = new ObservableCollection(this.RestricoesCamposRelatorios); + this.Carregando = false; + this.AdmUsuario = usuario1.get_Administrador(); + PermissaoUsuarioViewModel permissaoUsuarioViewModel = this; + if (!usuario1.get_PermissaoAggilizador().HasValue) + { + List permissaoAggilizadors = this.PermissaoAggilizador; + permissaoAggilizador1 = permissaoAggilizadors.FirstOrDefault((Gestor.Model.Common.PermissaoAggilizador x) => x.get_Id() == (long)2); + } + else + { + permissaoAggilizador1 = this.PermissaoAggilizador.FirstOrDefault((Gestor.Model.Common.PermissaoAggilizador x) => { + long id = x.get_Id(); + long? permissaoAggilizador = usuario1.get_PermissaoAggilizador(); + return id == permissaoAggilizador.GetValueOrDefault() & permissaoAggilizador.HasValue; + }); + } + permissaoUsuarioViewModel.SelectedPermissao = permissaoAggilizador1; + } + + public async Task Salvar(long? idUsuario = null, bool registrar = true) + { + bool flag; + bool alterar; + long num; + long id; + List permissaoUsuarios; + List restricaoUsuarioCamposRelatorios; + PermissaoUsuario permissaoUsuario1 = this.ServicoPermissUsuario.BuscarPermissao(Recursos.Usuario, 43); + if (permissaoUsuario1 != null) + { + alterar = !permissaoUsuario1.get_Alterar(); + } + else + { + alterar = false; + } + if (!alterar || Recursos.Usuario.get_Administrador()) + { + UsuarioServico usuarioServico = this._servicoUsuario; + long? nullable = idUsuario; + num = (nullable.HasValue ? nullable.GetValueOrDefault() : this._selectedUsuario.get_Id()); + Usuario usuario = await usuarioServico.BuscarUsuarioPorId(num); + List permissaoUsuarios1 = new List(); + List permissaoUsuarios2 = permissaoUsuarios1; + List permissoes = await this.GetPermissoes(usuario, "seguros"); + permissaoUsuarios2.AddRange(permissoes); + permissaoUsuarios2 = null; + permissaoUsuarios2 = permissaoUsuarios1; + permissoes = await this.GetPermissoes(usuario, "ferramentas"); + permissaoUsuarios2.AddRange(permissoes); + permissaoUsuarios2 = null; + List permissaoArquivoDigitals = new List(); + List permissaoArquivoDigitals1 = permissaoArquivoDigitals; + permissaoArquivoDigitals1.AddRange(await this.GetPermissoesArquivoDigital(usuario)); + permissaoArquivoDigitals1 = null; + List list = this.ArquivosDigitais.Select((PermissaoArquivoDigital x) => { + PermissaoArquivoDigital permissaoArquivoDigital = new PermissaoArquivoDigital(); + permissaoArquivoDigital.set_Id((permissaoArquivoDigitals.Count == 0 ? (long)0 : permissaoArquivoDigitals.First((PermissaoArquivoDigital y) => y.get_Tela() == x.get_Tela()).get_Id())); + permissaoArquivoDigital.set_Tela(x.get_Tela()); + permissaoArquivoDigital.set_Consultar(x.get_Consultar()); + permissaoArquivoDigital.set_Incluir(x.get_Incluir()); + permissaoArquivoDigital.set_Excluir(x.get_Excluir()); + permissaoArquivoDigital.set_Usuario(usuario); + return permissaoArquivoDigital; + }).ToList(); + permissaoUsuarios = new List(); + List list1 = this.Seguros.Select((PermissaoUsuario x) => { + PermissaoUsuario permissaoUsuario = new PermissaoUsuario(); + permissaoUsuario.set_Id((permissaoUsuarios1.Count == 0 ? (long)0 : permissaoUsuarios1.First((PermissaoUsuario y) => y.get_Tela() == x.get_Tela()).get_Id())); + permissaoUsuario.set_Tela(x.get_Tela()); + permissaoUsuario.set_Consultar(x.get_Consultar()); + permissaoUsuario.set_Incluir(x.get_Incluir()); + permissaoUsuario.set_Alterar(x.get_Alterar()); + permissaoUsuario.set_Excluir(x.get_Excluir()); + permissaoUsuario.set_Usuario(usuario); + return permissaoUsuario; + }).ToList(); + permissaoUsuarios.AddRange(list1); + list1 = this.Ferramentas.Select((PermissaoUsuario x) => { + PermissaoUsuario permissaoUsuario = new PermissaoUsuario(); + permissaoUsuario.set_Id((permissaoUsuarios1.Count == 0 ? (long)0 : permissaoUsuarios1.First((PermissaoUsuario y) => y.get_Tela() == x.get_Tela()).get_Id())); + permissaoUsuario.set_Tela(x.get_Tela()); + permissaoUsuario.set_Consultar(x.get_Consultar()); + permissaoUsuario.set_Incluir(x.get_Incluir()); + permissaoUsuario.set_Alterar(x.get_Alterar()); + permissaoUsuario.set_Excluir(x.get_Excluir()); + permissaoUsuario.set_Usuario(usuario); + return permissaoUsuario; + }).ToList(); + permissaoUsuarios.AddRange(list1); + Usuario usuario1 = usuario; + Gestor.Model.Common.PermissaoAggilizador selectedPermissao = this.SelectedPermissao; + if (selectedPermissao != null) + { + id = selectedPermissao.get_Id(); + } + else + { + id = (long)0; + } + usuario1.set_PermissaoAggilizador(new long?(id)); + usuario.set_Administrador(this.AdmUsuario); + await this.ServicoPermissArquivoDigital.SavePermiss(list, permissaoArquivoDigitals); + if (this.ServicoPermissArquivoDigital.Sucesso) + { + await this.ServicoPermissUsuario.SavePermiss(permissaoUsuarios, permissaoUsuarios1); + if (this.ServicoPermissUsuario.Sucesso) + { + await this._servicoUsuario.Save(usuario); + if (this._servicoUsuario.Sucesso) + { + if (Recursos.Usuario.get_Id() == this._selectedUsuario.get_Id()) + { + Recursos.Usuario = usuario; + } + List restricaoUsuarios = new List(); + List restricaoUsuarios1 = restricaoUsuarios; + List restricoes = await this.GetRestricoes(usuario, "b.i."); + restricaoUsuarios1.AddRange(restricoes); + restricaoUsuarios1 = null; + restricaoUsuarios1 = restricaoUsuarios; + restricoes = await this.GetRestricoes(usuario, "seguros"); + restricaoUsuarios1.AddRange(restricoes); + restricaoUsuarios1 = null; + restricaoUsuarios1 = restricaoUsuarios; + restricoes = await this.GetRestricoes(usuario, "relatorios"); + restricaoUsuarios1.AddRange(restricoes); + restricaoUsuarios1 = null; + restricaoUsuarios1 = restricaoUsuarios; + restricoes = await this.GetRestricoes(usuario, "financeiro"); + restricaoUsuarios1.AddRange(restricoes); + restricaoUsuarios1 = null; + restricaoUsuarios1 = restricaoUsuarios; + restricoes = await this.GetRestricoes(usuario, "ferramentas"); + restricaoUsuarios1.AddRange(restricoes); + restricaoUsuarios1 = null; + restricaoUsuarios1 = restricaoUsuarios; + restricoes = await this.GetRestricoes(usuario, "ajuda"); + restricaoUsuarios1.AddRange(restricoes); + restricaoUsuarios1 = null; + restricaoUsuarios1 = restricaoUsuarios; + restricoes = await this.GetRestricoes(usuario, "totalizacoesRelatorios"); + restricaoUsuarios1.AddRange(restricoes); + restricaoUsuarios1 = null; + restricaoUsuarios1 = restricaoUsuarios; + restricoes = await this.GetRestricoes(usuario, "camposRelatorios"); + restricaoUsuarios1.AddRange(restricoes); + restricaoUsuarios1 = null; + List restricaoUsuarioCamposRelatorios1 = new List(); + List restricaoUsuarioCamposRelatorios2 = restricaoUsuarioCamposRelatorios1; + restricaoUsuarioCamposRelatorios2.AddRange(await this.GetRestricoesCamposRelatorios(usuario)); + restricaoUsuarioCamposRelatorios2 = null; + List restricaoUsuarios2 = new List(); + restricaoUsuarioCamposRelatorios = new List(); + List list2 = this.RestricoesBis.Select((RestricaoUsuario x) => { + RestricaoUsuario restricaoUsuario = new RestricaoUsuario(); + restricaoUsuario.set_Id((restricaoUsuarios.Count == 0 ? (long)0 : restricaoUsuarios.First((RestricaoUsuario y) => y.get_Tipo() == x.get_Tipo()).get_Id())); + restricaoUsuario.set_Tipo(x.get_Tipo()); + restricaoUsuario.set_Restricao(x.get_Restricao()); + restricaoUsuario.set_Usuario(usuario); + return restricaoUsuario; + }).ToList(); + restricaoUsuarios2.AddRange(list2); + list2 = this.RestricoesSeguros.Select((RestricaoUsuario x) => { + RestricaoUsuario restricaoUsuario = new RestricaoUsuario(); + restricaoUsuario.set_Id((restricaoUsuarios.Count == 0 ? (long)0 : restricaoUsuarios.First((RestricaoUsuario y) => y.get_Tipo() == x.get_Tipo()).get_Id())); + restricaoUsuario.set_Tipo(x.get_Tipo()); + restricaoUsuario.set_Restricao(x.get_Restricao()); + restricaoUsuario.set_Usuario(usuario); + return restricaoUsuario; + }).ToList(); + restricaoUsuarios2.AddRange(list2); + list2 = this.RestricoesRelatorios.Select((RestricaoUsuario x) => { + RestricaoUsuario restricaoUsuario = new RestricaoUsuario(); + restricaoUsuario.set_Id((restricaoUsuarios.Count == 0 ? (long)0 : restricaoUsuarios.First((RestricaoUsuario y) => y.get_Tipo() == x.get_Tipo()).get_Id())); + restricaoUsuario.set_Tipo(x.get_Tipo()); + restricaoUsuario.set_Restricao(x.get_Restricao()); + restricaoUsuario.set_Usuario(usuario); + return restricaoUsuario; + }).ToList(); + restricaoUsuarios2.AddRange(list2); + list2 = this.RestricoesTotalizacoesRelatorios.Select((RestricaoUsuario x) => { + RestricaoUsuario restricaoUsuario = new RestricaoUsuario(); + restricaoUsuario.set_Id((restricaoUsuarios.Count == 0 ? (long)0 : restricaoUsuarios.First((RestricaoUsuario y) => y.get_Tipo() == x.get_Tipo()).get_Id())); + restricaoUsuario.set_Tipo(x.get_Tipo()); + restricaoUsuario.set_Restricao(x.get_Restricao()); + restricaoUsuario.set_Usuario(usuario); + return restricaoUsuario; + }).ToList(); + restricaoUsuarios2.AddRange(list2); + list2 = this.RestricoesFinanceiros.Select((RestricaoUsuario x) => { + RestricaoUsuario restricaoUsuario = new RestricaoUsuario(); + restricaoUsuario.set_Id((restricaoUsuarios.Count == 0 ? (long)0 : restricaoUsuarios.First((RestricaoUsuario y) => y.get_Tipo() == x.get_Tipo()).get_Id())); + restricaoUsuario.set_Tipo(x.get_Tipo()); + restricaoUsuario.set_Restricao(x.get_Restricao()); + restricaoUsuario.set_Usuario(usuario); + return restricaoUsuario; + }).ToList(); + restricaoUsuarios2.AddRange(list2); + list2 = this.RestricoesFerramentas.Select((RestricaoUsuario x) => { + RestricaoUsuario restricaoUsuario = new RestricaoUsuario(); + restricaoUsuario.set_Id((restricaoUsuarios.Count == 0 ? (long)0 : restricaoUsuarios.First((RestricaoUsuario y) => y.get_Tipo() == x.get_Tipo()).get_Id())); + restricaoUsuario.set_Tipo(x.get_Tipo()); + restricaoUsuario.set_Restricao(x.get_Restricao()); + restricaoUsuario.set_Usuario(usuario); + return restricaoUsuario; + }).ToList(); + restricaoUsuarios2.AddRange(list2); + list2 = this.RestricoesAjudas.Select((RestricaoUsuario x) => { + RestricaoUsuario restricaoUsuario = new RestricaoUsuario(); + restricaoUsuario.set_Id((restricaoUsuarios.Count == 0 ? (long)0 : restricaoUsuarios.First((RestricaoUsuario y) => y.get_Tipo() == x.get_Tipo()).get_Id())); + restricaoUsuario.set_Tipo(x.get_Tipo()); + restricaoUsuario.set_Restricao(x.get_Restricao()); + restricaoUsuario.set_Usuario(usuario); + return restricaoUsuario; + }).ToList(); + restricaoUsuarios2.AddRange(list2); + List list3 = this.RestricoesCamposRelatorios.Select((RestricaoUsuarioCamposRelatorios x) => { + RestricaoUsuarioCamposRelatorios restricaoUsuarioCamposRelatorio = new RestricaoUsuarioCamposRelatorios(); + restricaoUsuarioCamposRelatorio.set_Id((restricaoUsuarioCamposRelatorios1.Count == 0 ? (long)0 : restricaoUsuarioCamposRelatorios1.First((RestricaoUsuarioCamposRelatorios y) => { + if (y.get_Campo() != x.get_Campo()) + { + return false; + } + return y.get_Relatorio() == x.get_Relatorio(); + }).get_Id())); + restricaoUsuarioCamposRelatorio.set_Campo(x.get_Campo()); + restricaoUsuarioCamposRelatorio.set_Restricao(x.get_Restricao()); + restricaoUsuarioCamposRelatorio.set_Relatorio(x.get_Relatorio()); + restricaoUsuarioCamposRelatorio.set_Usuario(usuario); + return restricaoUsuarioCamposRelatorio; + }).ToList(); + restricaoUsuarioCamposRelatorios.AddRange(list3); + await this.ServicoRestriUsuario.SaveRestri(restricaoUsuarios2, restricaoUsuarios); + if (this.ServicoRestriUsuario.Sucesso) + { + await this.ServicoRestriUsuario.SaveRestriCamposRelatorios(restricaoUsuarioCamposRelatorios, restricaoUsuarioCamposRelatorios1); + if (this.ServicoRestriUsuario.Sucesso) + { + if (registrar) + { + base.RegistrarAcao(string.Concat("ALTEROU PERMISSÕES/RESTRIÇÕES DO USUÁRIO \"", this.SelectedUsuario.get_Nome(), "\""), this.SelectedUsuario.get_Id(), new TipoTela?(43), "ACESSE O LOG DE ALTERAÇÕES NA TELA DE PERMISSÕES/RESTRIÇÕES PARA VER EXATAMENTE O QUE FOI ALTERADO."); + } + flag = true; + } + else + { + flag = false; + } + } + else + { + flag = false; + } + } + else + { + flag = false; + } + } + else + { + flag = false; + } + } + else + { + flag = false; + } + } + else + { + await base.ShowMessage("VOCÊ NÃO TEM PERMISSÃO PARA ALTERAR PERMISSÕES!", "OK", "", false); + flag = false; + } + permissaoUsuarios = null; + restricaoUsuarioCamposRelatorios = null; + return flag; + } + } +} \ No newline at end of file -- cgit v1.2.3