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 --- .../Drawers/PermissaoUsuarioDrawer.cs | 672 +++++++++++++++++++++ 1 file changed, 672 insertions(+) create mode 100644 Gestor.Application/Drawers/PermissaoUsuarioDrawer.cs (limited to 'Gestor.Application/Drawers/PermissaoUsuarioDrawer.cs') diff --git a/Gestor.Application/Drawers/PermissaoUsuarioDrawer.cs b/Gestor.Application/Drawers/PermissaoUsuarioDrawer.cs new file mode 100644 index 0000000..859aa9d --- /dev/null +++ b/Gestor.Application/Drawers/PermissaoUsuarioDrawer.cs @@ -0,0 +1,672 @@ +using Gestor.Application.Actions; +using Gestor.Application.Helpers; +using Gestor.Application.ViewModels.Drawer; +using Gestor.Application.ViewModels.Generic; +using Gestor.Application.Views.Generic; +using Gestor.Common.Validation; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using MaterialDesignThemes.Wpf; +using System; +using System.CodeDom.Compiler; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Diagnostics; +using System.Runtime.CompilerServices; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Threading; + +namespace Gestor.Application.Drawers +{ + public class PermissaoUsuarioDrawer : BaseUserControl, IComponentConnector, IStyleConnector + { + public PermissaoUsuarioViewModel ViewModel; + + private bool _filtrado; + + internal System.Windows.Controls.ProgressBar ProgressBar; + + internal ToggleButton AtivoBox; + + internal ScrollViewer ScrollPermissoes; + + internal MenuItem DesativarPermissoes; + + internal MenuItem AtivarPermissoes; + + internal MenuItem MaisOpcoesButton; + + internal DataGrid SegurosGrid; + + internal DataGrid FerramentasGrid; + + internal DataGrid ArquivoDigitalGrid; + + internal MenuItem AtivarRestricoes; + + internal MenuItem DesativarRestricoes; + + internal DataGrid RestricoesBiGrid; + + internal DataGrid RestricoesSegurosGrid; + + internal DataGrid RestricoesRelatoriosGrid; + + internal DataGrid RestricoesCamposRelatoriosGrid; + + internal DataGrid RestricoesTotalizacoesRelatoriosGrid; + + internal DataGrid RestricoesFinanceiroGrid; + + internal DataGrid RestricoesFerramentasGrid; + + internal DataGrid RestricoesAjudaGrid; + + internal MaterialDesignThemes.Wpf.Snackbar Snackbar; + + private bool _contentLoaded; + + public PermissaoUsuarioDrawer(Usuario usuario) + { + this.ViewModel = new PermissaoUsuarioViewModel(usuario); + base.DataContext = this.ViewModel; + this.InitializeComponent(); + Gestor.Application.Actions.Actions.OcultarTogglesSeguros = (Action)Delegate.Combine(Gestor.Application.Actions.Actions.OcultarTogglesSeguros, new Action(this.OcultarTogglesSeguros)); + Gestor.Application.Actions.Actions.OcultarTogglesFerramentas = (Action)Delegate.Combine(Gestor.Application.Actions.Actions.OcultarTogglesFerramentas, new Action(this.OcultarTogglesFerramentas)); + Gestor.Application.Actions.Actions.OcultarTogglesArquivoDigital = (Action)Delegate.Combine(Gestor.Application.Actions.Actions.OcultarTogglesArquivoDigital, new Action(PermissaoUsuarioDrawer.OcultarTogglesArquivoDigital)); + } + + private async Task AbrirCopiarPermiss() + { + Tuple, Usuario, List, List, List> tuple; + do + { + tuple = await this.ViewModel.ShowCopiarPermissaoDialog(); + if (tuple != null) + { + continue; + } + return; + } + while (!this.ViewModel.CopiarPermissoes(tuple)); + this.SegurosGrid.Items.Refresh(); + this.FerramentasGrid.Items.Refresh(); + this.ArquivoDigitalGrid.Items.Refresh(); + this.RestricoesBiGrid.Items.Refresh(); + this.RestricoesSegurosGrid.Items.Refresh(); + this.RestricoesFinanceiroGrid.Items.Refresh(); + this.RestricoesFerramentasGrid.Items.Refresh(); + this.RestricoesRelatoriosGrid.Items.Refresh(); + this.RestricoesTotalizacoesRelatoriosGrid.Items.Refresh(); + this.RestricoesCamposRelatoriosGrid.Items.Refresh(); + this.FerramentasGrid.EsconderToggles(18, TipoToggle.Incluir | TipoToggle.Excluir); + this.FerramentasGrid.EsconderToggles(10, TipoToggle.Excluir); + this.FerramentasGrid.EsconderToggles(12, TipoToggle.Incluir | TipoToggle.Excluir); + this.FerramentasGrid.EsconderToggles(13, TipoToggle.Incluir | TipoToggle.Excluir); + this.SegurosGrid.EsconderToggles(21, TipoToggle.Incluir | TipoToggle.Alterar | TipoToggle.Excluir); + this.SegurosGrid.EsconderToggles(5, TipoToggle.Consultar); + } + + private async Task AbrirExportarPermiss() + { + bool flag; + do + { + List usuarios = await this.ViewModel.ShowExportarPermissaoDialog(this.ViewModel.SelectedUsuario.get_Id()); + if (usuarios != null) + { + this.ViewModel.Carregando = true; + flag = await this.ViewModel.ExportarPermissoes(usuarios); + this.ViewModel.Carregando = false; + } + else + { + return; + } + } + while (!flag); + this.ToggleSnackBar("PERMISSÕES/RESTRIÇÕES EXPORTADAS COM SUCESSO.", true); + } + + private void AbrirLogPermissoes_OnClick(object sender, RoutedEventArgs e) + { + this.ViewModel.AbrirLog(43, this.ViewModel.SelectedUsuario.get_Id()); + } + + private void AtivarDesativarPermissoes_OnClick(object sender, RoutedEventArgs e) + { + this.ViewModel.AtivarDesativarPermissoes(this.ViewModel.AtivarDesativarPermissoesBool); + } + + private void AtivarDesativarRestricoes_OnClick(object sender, RoutedEventArgs e) + { + this.ViewModel.AtivarDesativarRestricoes(this.ViewModel.AtivarDesativarRestricoesBool); + } + + private void AutoCompleteBox_OnTextChanged(object sender, RoutedEventArgs e) + { + if (((AutoCompleteBox)sender).get_Text().Length >= 3 || !this._filtrado) + { + return; + } + this._filtrado = false; + this.ViewModel.FiltrarRestricoesBis(""); + this.ViewModel.FiltrarRestricoesSeguros(""); + this.ViewModel.FiltrarRestricoesRelatorios(""); + this.ViewModel.FiltrarRestricoesTotalizacoesRelatorios(""); + this.ViewModel.FiltrarRestricoesCamposRelatorios(""); + this.ViewModel.FiltrarRestricoesFinanceiros(""); + this.ViewModel.FiltrarRestricoesFerramentas(""); + this.ViewModel.FiltrarRestricoesAjudas(""); + } + + private void AutoCompleteBox_Populating(object sender, PopulatingEventArgs e) + { + if (e.get_Parameter().Length < 3) + { + return; + } + this._filtrado = true; + e.set_Cancel(true); + this.ViewModel.FiltrarRestricoesBi(ValidationHelper.RemoveDiacritics(e.get_Parameter().Trim())).ContinueWith((Task> searchResult) => ((AutoCompleteBox)sender).PopulateComplete(), TaskScheduler.FromCurrentSynchronizationContext()); + this.ViewModel.FiltrarRestricoesSeguro(ValidationHelper.RemoveDiacritics(e.get_Parameter().Trim())).ContinueWith((Task> searchResult) => ((AutoCompleteBox)sender).PopulateComplete(), TaskScheduler.FromCurrentSynchronizationContext()); + this.ViewModel.FiltrarRestricoesRelatorio(ValidationHelper.RemoveDiacritics(e.get_Parameter().Trim())).ContinueWith((Task> searchResult) => ((AutoCompleteBox)sender).PopulateComplete(), TaskScheduler.FromCurrentSynchronizationContext()); + this.ViewModel.FiltrarRestricoesTotalizacoesRelatorio(ValidationHelper.RemoveDiacritics(e.get_Parameter().Trim())).ContinueWith((Task> searchResult) => ((AutoCompleteBox)sender).PopulateComplete(), TaskScheduler.FromCurrentSynchronizationContext()); + this.ViewModel.FiltrarRestricoesCamposRelatorio(ValidationHelper.RemoveDiacritics(e.get_Parameter().Trim())).ContinueWith((Task> searchResult) => ((AutoCompleteBox)sender).PopulateComplete(), TaskScheduler.FromCurrentSynchronizationContext()); + this.ViewModel.FiltrarRestricoesFinanceiro(ValidationHelper.RemoveDiacritics(e.get_Parameter().Trim())).ContinueWith((Task> searchResult) => ((AutoCompleteBox)sender).PopulateComplete(), TaskScheduler.FromCurrentSynchronizationContext()); + this.ViewModel.FiltrarRestricoesFerramenta(ValidationHelper.RemoveDiacritics(e.get_Parameter().Trim())).ContinueWith((Task> searchResult) => ((AutoCompleteBox)sender).PopulateComplete(), TaskScheduler.FromCurrentSynchronizationContext()); + this.ViewModel.FiltrarRestricoesAjuda(ValidationHelper.RemoveDiacritics(e.get_Parameter().Trim())).ContinueWith((Task> searchResult) => ((AutoCompleteBox)sender).PopulateComplete(), TaskScheduler.FromCurrentSynchronizationContext()); + } + + private void CloseSlackBar() + { + Thread.Sleep(5000); + System.Windows.Threading.Dispatcher dispatcher = this.ProgressBar.Dispatcher; + if (dispatcher == null) + { + return; + } + dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => this.ToggleSnackBar("", false))); + } + + private async void CopiarUsuario_OnClick(object sender, RoutedEventArgs e) + { + await this.AbrirCopiarPermiss(); + } + + private async void ExportarUsuario_OnClick(object sender, RoutedEventArgs e) + { + await this.AbrirExportarPermiss(); + } + + private void Fechar_OnClick(object sender, RoutedEventArgs e) + { + Action atualizaUsuario = Gestor.Application.Actions.Actions.AtualizaUsuario; + if (atualizaUsuario != null) + { + atualizaUsuario(); + } + else + { + } + this.ViewModel.CloseDrawer(); + } + + [DebuggerNonUserCode] + [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() + { + if (this._contentLoaded) + { + return; + } + this._contentLoaded = true; + System.Windows.Application.LoadComponent(this, new Uri("/Gestor.Application;component/drawers/permissaousuariodrawer.xaml", UriKind.Relative)); + } + + private static void OcultarTogglesArquivoDigital() + { + } + + private void OcultarTogglesFerramentas() + { + this.FerramentasGrid.EsconderToggles(18, TipoToggle.Incluir | TipoToggle.Excluir); + this.FerramentasGrid.EsconderToggles(10, TipoToggle.Excluir); + this.FerramentasGrid.EsconderToggles(12, TipoToggle.Incluir | TipoToggle.Excluir); + this.FerramentasGrid.EsconderToggles(13, TipoToggle.Excluir); + } + + private void OcultarTogglesSeguros() + { + this.SegurosGrid.EsconderToggles(21, TipoToggle.Incluir | TipoToggle.Alterar | TipoToggle.Excluir); + this.SegurosGrid.EsconderToggles(5, TipoToggle.Consultar); + } + + private void PermissoesGrid_OnPreviewMouseWheel(object sender, MouseWheelEventArgs e) + { + this.ScrollPermissoes.ScrollToVerticalOffset(this.ScrollPermissoes.VerticalOffset - (double)e.Delta); + } + + private async void SalvarPermissoes_OnClick(object sender, RoutedEventArgs e) + { + this.ViewModel.Carregando = true; + if (await this.ViewModel.Salvar(null, true)) + { + this.ToggleSnackBar("PERMISSÕES/RESTRIÇÕES SALVAS COM SUCESSO.", true); + } + this.ViewModel.Carregando = false; + } + + private void SnackbarMessage_ActionClick(object sender, RoutedEventArgs e) + { + this.Snackbar.set_IsActive(false); + } + + [DebuggerNonUserCode] + [EditorBrowsable(EditorBrowsableState.Never)] + [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) + { + switch (connectionId) + { + case 1: + { + this.ProgressBar = (System.Windows.Controls.ProgressBar)target; + return; + } + case 2: + { + ((Button)target).Click += new RoutedEventHandler(this.Fechar_OnClick); + return; + } + case 3: + { + this.AtivoBox = (ToggleButton)target; + return; + } + case 4: + { + this.ScrollPermissoes = (ScrollViewer)target; + return; + } + case 5: + { + this.DesativarPermissoes = (MenuItem)target; + this.DesativarPermissoes.Click += new RoutedEventHandler(this.AtivarDesativarPermissoes_OnClick); + return; + } + case 6: + { + this.AtivarPermissoes = (MenuItem)target; + this.AtivarPermissoes.Click += new RoutedEventHandler(this.AtivarDesativarPermissoes_OnClick); + return; + } + case 7: + { + this.MaisOpcoesButton = (MenuItem)target; + return; + } + case 8: + { + ((MenuItem)target).Click += new RoutedEventHandler(this.AbrirLogPermissoes_OnClick); + return; + } + case 9: + { + this.SegurosGrid = (DataGrid)target; + this.SegurosGrid.PreviewMouseWheel += new MouseWheelEventHandler(this.PermissoesGrid_OnPreviewMouseWheel); + return; + } + case 10: + case 11: + case 12: + case 13: + case 15: + case 16: + case 17: + case 18: + case 20: + case 21: + case 22: + { + this._contentLoaded = true; + return; + } + case 14: + { + this.FerramentasGrid = (DataGrid)target; + this.FerramentasGrid.PreviewMouseWheel += new MouseWheelEventHandler(this.PermissoesGrid_OnPreviewMouseWheel); + return; + } + case 19: + { + this.ArquivoDigitalGrid = (DataGrid)target; + this.ArquivoDigitalGrid.PreviewMouseWheel += new MouseWheelEventHandler(this.PermissoesGrid_OnPreviewMouseWheel); + return; + } + case 23: + { + ((AutoCompleteBox)target).add_Populating(new PopulatingEventHandler(this, PermissaoUsuarioDrawer.AutoCompleteBox_Populating)); + ((AutoCompleteBox)target).add_TextChanged(new RoutedEventHandler(this.AutoCompleteBox_OnTextChanged)); + return; + } + case 24: + { + this.AtivarRestricoes = (MenuItem)target; + this.AtivarRestricoes.Click += new RoutedEventHandler(this.AtivarDesativarRestricoes_OnClick); + return; + } + case 25: + { + this.DesativarRestricoes = (MenuItem)target; + this.DesativarRestricoes.Click += new RoutedEventHandler(this.AtivarDesativarRestricoes_OnClick); + return; + } + case 26: + { + this.RestricoesBiGrid = (DataGrid)target; + return; + } + case 27: + { + this.RestricoesSegurosGrid = (DataGrid)target; + return; + } + case 28: + { + this.RestricoesRelatoriosGrid = (DataGrid)target; + return; + } + case 29: + { + this.RestricoesCamposRelatoriosGrid = (DataGrid)target; + this.RestricoesCamposRelatoriosGrid.PreviewMouseWheel += new MouseWheelEventHandler(this.PermissoesGrid_OnPreviewMouseWheel); + return; + } + case 30: + { + this.RestricoesTotalizacoesRelatoriosGrid = (DataGrid)target; + return; + } + case 31: + { + this.RestricoesFinanceiroGrid = (DataGrid)target; + return; + } + case 32: + { + this.RestricoesFerramentasGrid = (DataGrid)target; + return; + } + case 33: + { + this.RestricoesAjudaGrid = (DataGrid)target; + return; + } + case 34: + { + this.Snackbar = (MaterialDesignThemes.Wpf.Snackbar)target; + return; + } + case 35: + { + ((SnackbarMessage)target).add_ActionClick(new RoutedEventHandler(this.SnackbarMessage_ActionClick)); + return; + } + case 36: + { + ((MenuItem)target).Click += new RoutedEventHandler(this.SalvarPermissoes_OnClick); + return; + } + case 37: + { + ((MenuItem)target).Click += new RoutedEventHandler(this.CopiarUsuario_OnClick); + return; + } + case 38: + { + ((MenuItem)target).Click += new RoutedEventHandler(this.ExportarUsuario_OnClick); + return; + } + default: + { + this._contentLoaded = true; + return; + } + } + } + + [DebuggerNonUserCode] + [EditorBrowsable(EditorBrowsableState.Never)] + [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] + void System.Windows.Markup.IStyleConnector.Connect(int connectionId, object target) + { + EventSetter eventSetter; + switch (connectionId) + { + case 10: + { + eventSetter = new EventSetter() + { + Event = ToggleButton.UncheckedEvent, + Handler = new RoutedEventHandler(this.UnToggleSeguros_OnChecked) + }; + ((System.Windows.Style)target).Setters.Add(eventSetter); + return; + } + case 11: + { + eventSetter = new EventSetter() + { + Event = ToggleButton.CheckedEvent, + Handler = new RoutedEventHandler(this.ToggleSeguros_OnChecked) + }; + ((System.Windows.Style)target).Setters.Add(eventSetter); + return; + } + case 12: + { + eventSetter = new EventSetter() + { + Event = ToggleButton.CheckedEvent, + Handler = new RoutedEventHandler(this.ToggleSeguros_OnChecked) + }; + ((System.Windows.Style)target).Setters.Add(eventSetter); + return; + } + case 13: + { + eventSetter = new EventSetter() + { + Event = ToggleButton.CheckedEvent, + Handler = new RoutedEventHandler(this.ToggleSeguros_OnChecked) + }; + ((System.Windows.Style)target).Setters.Add(eventSetter); + return; + } + case 14: + case 19: + { + return; + } + case 15: + { + eventSetter = new EventSetter() + { + Event = ToggleButton.UncheckedEvent, + Handler = new RoutedEventHandler(this.UnToggleFerramentas_OnChecked) + }; + ((System.Windows.Style)target).Setters.Add(eventSetter); + return; + } + case 16: + { + eventSetter = new EventSetter() + { + Event = ToggleButton.CheckedEvent, + Handler = new RoutedEventHandler(this.ToggleFerramentas_OnChecked) + }; + ((System.Windows.Style)target).Setters.Add(eventSetter); + return; + } + case 17: + { + eventSetter = new EventSetter() + { + Event = ToggleButton.CheckedEvent, + Handler = new RoutedEventHandler(this.ToggleFerramentas_OnChecked) + }; + ((System.Windows.Style)target).Setters.Add(eventSetter); + return; + } + case 18: + { + eventSetter = new EventSetter() + { + Event = ToggleButton.CheckedEvent, + Handler = new RoutedEventHandler(this.ToggleFerramentas_OnChecked) + }; + ((System.Windows.Style)target).Setters.Add(eventSetter); + return; + } + case 20: + { + eventSetter = new EventSetter() + { + Event = ToggleButton.UncheckedEvent, + Handler = new RoutedEventHandler(this.UnToggleArquivosDigitais_OnChecked) + }; + ((System.Windows.Style)target).Setters.Add(eventSetter); + return; + } + case 21: + { + eventSetter = new EventSetter() + { + Event = ToggleButton.CheckedEvent, + Handler = new RoutedEventHandler(this.ToggleArquivosDigitais_OnChecked) + }; + ((System.Windows.Style)target).Setters.Add(eventSetter); + return; + } + case 22: + { + eventSetter = new EventSetter() + { + Event = ToggleButton.CheckedEvent, + Handler = new RoutedEventHandler(this.ToggleArquivosDigitais_OnChecked) + }; + ((System.Windows.Style)target).Setters.Add(eventSetter); + return; + } + default: + { + return; + } + } + } + + private void ToggleArquivosDigitais_OnChecked(object sender, RoutedEventArgs e) + { + if (!this.ViewModel.Carregado) + { + return; + } + DataGridCell dataGridCell = (DataGridCell)sender; + if (dataGridCell == null) + { + return; + } + this.ViewModel.HabilitarArquivoDigital((PermissaoArquivoDigital)dataGridCell.DataContext); + } + + private void ToggleFerramentas_OnChecked(object sender, RoutedEventArgs e) + { + if (!this.ViewModel.Carregado) + { + return; + } + DataGridCell dataGridCell = (DataGridCell)sender; + if (dataGridCell == null) + { + return; + } + this.ViewModel.HabilitarConsulta((PermissaoUsuario)dataGridCell.DataContext, "Ferramentas"); + } + + private void ToggleSeguros_OnChecked(object sender, RoutedEventArgs e) + { + if (!this.ViewModel.Carregado) + { + return; + } + DataGridCell dataGridCell = (DataGridCell)sender; + if (dataGridCell == null) + { + return; + } + this.ViewModel.HabilitarConsulta((PermissaoUsuario)dataGridCell.DataContext, "Seguros"); + } + + public void ToggleSnackBar(string message, bool active = true) + { + this.Snackbar.get_Message().Content = message; + this.Snackbar.set_IsActive(active); + if (!active) + { + return; + } + Task.Factory.StartNew(new Action(this.CloseSlackBar)); + } + + private void UnToggleArquivosDigitais_OnChecked(object sender, RoutedEventArgs e) + { + if (!this.ViewModel.Carregado) + { + return; + } + DataGridCell dataGridCell = (DataGridCell)sender; + if (dataGridCell == null) + { + return; + } + this.ViewModel.DesabilitarArquivoDigital((PermissaoArquivoDigital)dataGridCell.DataContext); + } + + private void UnToggleFerramentas_OnChecked(object sender, RoutedEventArgs e) + { + if (!this.ViewModel.Carregado) + { + return; + } + DataGridCell dataGridCell = (DataGridCell)sender; + if (dataGridCell == null) + { + return; + } + this.ViewModel.DesabilitarConsulta((PermissaoUsuario)dataGridCell.DataContext, "Ferramentas"); + } + + private void UnToggleSeguros_OnChecked(object sender, RoutedEventArgs e) + { + if (!this.ViewModel.Carregado) + { + return; + } + DataGridCell dataGridCell = (DataGridCell)sender; + if (dataGridCell == null) + { + return; + } + this.ViewModel.DesabilitarConsulta((PermissaoUsuario)dataGridCell.DataContext, "Seguros"); + } + } +} \ No newline at end of file -- cgit v1.2.3