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; } } }