using Gestor.Application.Drawers; using Gestor.Application.Helpers; using Gestor.Application.Servicos; using Gestor.Application.ViewModels.Ferramentas; using Gestor.Application.ViewModels.Generic; using Gestor.Application.Views.Generic; using Gestor.Common.Validation; using Gestor.Model.Common; using Gestor.Model.Domain.Common; using Gestor.Model.Domain.Configuracoes; using Gestor.Model.Domain.Generic; using Gestor.Model.Domain.Seguros; using Gestor.Model.License; using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Linq; using System.Runtime.CompilerServices; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Input; using System.Windows.Markup; using System.Windows.Threading; namespace Gestor.Application.Views.Ferramentas { public class UsuarioView : BaseUserControl, IComponentConnector { private bool _abrindoPermissao; private bool _firstTime = true; private bool _setting; internal DataGrid UsuarioGrid; internal MenuItem CancelarApoliceButton; internal TextBox NomeBox; internal TextBox CepBox; internal TextBox EnderecoBox; internal TextBox NumeroBox; internal TextBox BairroBox; internal TextBox CidadeBox; internal TextBox EstadoBox; private bool _contentLoaded; public UsuarioViewModel ViewModel { get; set; } [DebuggerNonUserCode] [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] internal Delegate _CreateDelegate(Type delegateType, string handler) { return Delegate.CreateDelegate(delegateType, this, handler); } public UsuarioView() { base.Tag = "CADASTRO DE USUÁRIOS"; this.ViewModel = new UsuarioViewModel(); base.DataContext = this.ViewModel; this.InitializeComponent(); System.Windows.Threading.Dispatcher dispatcher = base.Dispatcher; if (dispatcher == null) { return; } dispatcher.BeginInvoke(DispatcherPriority.Render, new Action(this.ContentLoad)); } private async void AbrirAquivoDigital_Click(object sender, RoutedEventArgs e) { if ((new PermissaoArquivoDigitalServico()).BuscarPermissao(Recursos.Usuario, 12).get_Consultar()) { this.ViewModel.EnableAlterar = false; FiltroArquivoDigital filtroArquivoDigital = new FiltroArquivoDigital(); filtroArquivoDigital.set_Id(this.ViewModel.SelectedUsuario.get_Id()); filtroArquivoDigital.set_Tipo(12); filtroArquivoDigital.set_Parente(this.ViewModel.SelectedUsuario); this.ViewModel.ShowDrawer(new ArquivoDigitalDrawer(filtroArquivoDigital), 0, false); this.ViewModel.EnableAlterar = true; } else { await this.ViewModel.ShowMessage(string.Concat("VOCÊ NÃO POSSUI PERMISSÃO PARA ACESSAR\nARQUIVO DIGITAL DE ", ValidationHelper.GetDescription((TipoArquivoDigital)12), "."), "OK", "", false); } } private void AbrirLog_OnClick(object sender, RoutedEventArgs e) { this.ViewModel.AbrirLog(16, this.ViewModel.SelectedUsuario.get_Id()); } private async void AbrirLogAcesso_OnClick(object sender, RoutedEventArgs e) { await this.ViewModel.ShowLogAcessoDialog(49, this.ViewModel.SelectedUsuario); } private async void Alterar_OnClick(object sender, RoutedEventArgs e) { List produtos = LicenseHelper.Produtos; if (!produtos.Any((Licenca produto) => produto.get_Produto() == 91) || !this.ViewModel.SelectedUsuario.get_Login().Contains("@")) { await this.ViewModel.AlterarUsuario(); this.ViewModel.SelectedUsuario.Initialize(); this.ViewModel.CancelUsuario = (Usuario)this.ViewModel.SelectedUsuario.Clone(); this.ViewModel.Alterar(true); this.ViewModel.IsExpanded = false; this.NomeBox.Focus(); } else { await this.ViewModel.ShowMessage("ALTERAÇÃO DESSE USUARIO TEM QUE SER FEITO NO PAINEL DO AGGILIZADOR.", "OK", "", false); } } private void AutoCompleteBancoBox_Populating(object sender, PopulatingEventArgs e) { if (e.get_Parameter().Length < 3) { return; } e.set_Cancel(true); this.ViewModel.BuscarBanco(ValidationHelper.RemoveDiacritics(e.get_Parameter().Trim())).ContinueWith((Task> searchResult) => { if (searchResult.Result == null) { return; } AutoCompleteBox autoCompleteBox = (AutoCompleteBox)sender; autoCompleteBox.set_ItemsSource(searchResult.Result); autoCompleteBox.PopulateComplete(); }, TaskScheduler.FromCurrentSynchronizationContext()); } private void AutoCompleteBox_OnTextChanged(object sender, RoutedEventArgs e) { if (!string.IsNullOrWhiteSpace(((AutoCompleteBox)sender).get_Text())) { return; } this.ViewModel.FiltrarUsuario(""); } private void AutoCompleteBoxUsuario_Populating(object sender, PopulatingEventArgs e) { e.set_Cancel(true); this.ViewModel.Filtrar(ValidationHelper.RemoveDiacritics(e.get_Parameter().Trim())).ContinueWith((Task> searchResult) => { if (searchResult.Result == null) { return; } AutoCompleteBox autoCompleteBox = (AutoCompleteBox)sender; autoCompleteBox.set_ItemsSource(searchResult.Result); autoCompleteBox.PopulateComplete(); }, TaskScheduler.FromCurrentSynchronizationContext()); } private async void Cancelar_OnClick(object sender, RoutedEventArgs e) { this.ViewModel.Loading(true); await this.ViewModel.CancelarAlteracao(); this.ViewModel.Loading(false); this.ScrollToItem(); } private async void Click_VerificaAdmCentralSegurado(object sender, RoutedEventArgs e) { await this.ViewModel.VerificaUsuarioAdmCentralSegurado(); } private async void ContentLoad() { this.ViewModel.Loading(true); await this.ViewModel.Seleciona(); this.ViewModel.Loading(false); } private void CpfBox_OnLostFocus(object sender, RoutedEventArgs e) { TextBox textBox = (TextBox)sender; textBox.Text = ValidationHelper.FormatDocument(textBox.Text); } private async void CriarCartao_OnClick(object sender, RoutedEventArgs e) { List configuracoes = Recursos.Configuracoes; bool flag = configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 30); await this.ViewModel.CriarCartao(flag); } private async void Excluir_OnClick(object sender, RoutedEventArgs e) { List produtos = LicenseHelper.Produtos; if (!produtos.Any((Licenca produto) => produto.get_Produto() == 91) || !this.ViewModel.SelectedUsuario.get_Login().Contains("@")) { await this.ViewModel.Excluir(); this.ScrollToItem(); } else { await this.ViewModel.ShowMessage("EXCLUSÃO DESSE USUARIO TEM QUE SER FEITO NO PAINEL DO AGGILIZADOR.", "OK", "", false); } } private void Incluir_OnClick(object sender, RoutedEventArgs e) { this.ViewModel.Incluir(); List> keyValuePairs = this.ViewModel.SelectedUsuario.Validate(); this.ValidateFields(keyValuePairs, true); this.ViewModel.IsExpanded = false; this.NomeBox.Focus(); } [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/views/ferramentas/usuarioview.xaml", UriKind.Relative)); } private async void Permissoes_OnClick(object sender, RoutedEventArgs e) { bool consultar; if (!this._abrindoPermissao) { List permissaoUsuario = this.ViewModel.PermissaoUsuario; PermissaoUsuario permissaoUsuario1 = permissaoUsuario.FirstOrDefault((PermissaoUsuario permissao) => permissao.get_Tela() == 43); if (Recursos.Usuario.get_Administrador() || Recursos.Usuario.get_Id() == 0 || Recursos.Usuario.get_Nome().Contains("ACESSO AGGER") || permissaoUsuario1 == null) { consultar = false; } else { permissaoUsuario1.get_Consultar(); consultar = !permissaoUsuario1.get_Consultar(); } bool flag = consultar; if (flag) { flag = await this.ViewModel.ShowMessage("VOCÊ NÃO POSSUI PERMISSÃO PARA ACESSAR PERMISSÕES.", "OK", "", false); } if (!flag) { this._abrindoPermissao = true; await this.ViewModel.OpenPermissao(); await Task.Delay(1000); this._abrindoPermissao = false; } } } private async void PostcodeBox_OnLostFocus(object sender, RoutedEventArgs e) { string str = ValidationHelper.FormatPostCode(((TextBox)sender).Text); this.CepBox.Text = str; if (ValidationHelper.ValidatePostCode(str)) { EnderecoBase enderecoBase = await this.ViewModel.BuscaCep(str); if (enderecoBase != null) { this.EnderecoBox.Text = enderecoBase.get_Endereco(); this.CidadeBox.Text = enderecoBase.get_Cidade(); this.EstadoBox.Text = enderecoBase.get_Estado(); this.BairroBox.Text = enderecoBase.get_Bairro(); } } } private async void Salvar_OnClick(object sender, RoutedEventArgs e) { bool flag; this.ViewModel.Loading(true); List> keyValuePairs = await this.ViewModel.Salvar(); this.ValidateFields(keyValuePairs, true); flag = (keyValuePairs == null ? true : keyValuePairs.Count == 0); this.ViewModel.Loading(false); if (!flag) { await this.ViewModel.ShowMessage(keyValuePairs, this.ViewModel.ErroCamposInvalidos, "OK", ""); } else { this.ScrollToItem(); } } private void ScrollToItem() { if (this.UsuarioGrid.SelectedItem == null) { return; } this.UsuarioGrid.UpdateLayout(); this.UsuarioGrid.ScrollIntoView(this.UsuarioGrid.SelectedItem); } [DebuggerNonUserCode] [EditorBrowsable(EditorBrowsableState.Never)] [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: { ((AutoCompleteBox)target).add_Populating(new PopulatingEventHandler(this, UsuarioView.AutoCompleteBoxUsuario_Populating)); ((AutoCompleteBox)target).add_TextChanged(new RoutedEventHandler(this.AutoCompleteBox_OnTextChanged)); return; } case 2: { this.UsuarioGrid = (DataGrid)target; return; } case 3: { ((MenuItem)target).Click += new RoutedEventHandler(this.Incluir_OnClick); return; } case 4: { ((MenuItem)target).Click += new RoutedEventHandler(this.Alterar_OnClick); return; } case 5: { ((MenuItem)target).Click += new RoutedEventHandler(this.Salvar_OnClick); return; } case 6: { this.CancelarApoliceButton = (MenuItem)target; this.CancelarApoliceButton.Click += new RoutedEventHandler(this.Cancelar_OnClick); return; } case 7: { ((MenuItem)target).Click += new RoutedEventHandler(this.Excluir_OnClick); return; } case 8: { ((MenuItem)target).Click += new RoutedEventHandler(this.Permissoes_OnClick); return; } case 9: { ((MenuItem)target).Click += new RoutedEventHandler(this.Vinculo_OnClick); return; } case 10: { ((MenuItem)target).Click += new RoutedEventHandler(this.CriarCartao_OnClick); return; } case 11: { ((MenuItem)target).Click += new RoutedEventHandler(this.AbrirLog_OnClick); return; } case 12: { ((MenuItem)target).Click += new RoutedEventHandler(this.AbrirAquivoDigital_Click); return; } case 13: { ((MenuItem)target).Click += new RoutedEventHandler(this.AbrirLogAcesso_OnClick); return; } case 14: { this.NomeBox = (TextBox)target; return; } case 15: { UsuarioView usuarioView = this; ((TextBox)target).PreviewTextInput += new TextCompositionEventHandler(usuarioView.SomenteNumeros); ((TextBox)target).LostFocus += new RoutedEventHandler(this.CpfBox_OnLostFocus); return; } case 16: { ((ComboBox)target).SelectionChanged += new SelectionChangedEventHandler(this.TelaInicial_OnSelectionChanged); return; } case 17: { ((DatePicker)target).LostKeyboardFocus += new KeyboardFocusChangedEventHandler(this.DatePicker_OnLostKeyboardFocus); ((DatePicker)target).MouseDoubleClick += new MouseButtonEventHandler(this.DataAtual_OnDoubleClick); ((DatePicker)target).PreviewKeyDown += new KeyEventHandler(this.DatePicker_PreviewKeyDown); return; } case 18: { ((DatePicker)target).LostKeyboardFocus += new KeyboardFocusChangedEventHandler(this.DatePicker_OnLostKeyboardFocus); ((DatePicker)target).MouseDoubleClick += new MouseButtonEventHandler(this.DataAtual_OnDoubleClick); ((DatePicker)target).PreviewKeyDown += new KeyEventHandler(this.DatePicker_PreviewKeyDown); return; } case 19: { ((AutoCompleteBox)target).add_Populating(new PopulatingEventHandler(this, UsuarioView.AutoCompleteBancoBox_Populating)); return; } case 20: { this.CepBox = (TextBox)target; this.CepBox.LostFocus += new RoutedEventHandler(this.PostcodeBox_OnLostFocus); UsuarioView usuarioView1 = this; this.CepBox.PreviewTextInput += new TextCompositionEventHandler(usuarioView1.SomenteNumeros); return; } case 21: { this.EnderecoBox = (TextBox)target; return; } case 22: { this.NumeroBox = (TextBox)target; return; } case 23: { this.BairroBox = (TextBox)target; return; } case 24: { this.CidadeBox = (TextBox)target; return; } case 25: { this.EstadoBox = (TextBox)target; return; } case 26: { UsuarioView usuarioView2 = this; ((TextBox)target).PreviewTextInput += new TextCompositionEventHandler(usuarioView2.SomenteNumeros); return; } case 27: { UsuarioView usuarioView3 = this; ((TextBox)target).LostFocus += new RoutedEventHandler(usuarioView3.FormatarTelefone); UsuarioView usuarioView4 = this; ((TextBox)target).PreviewTextInput += new TextCompositionEventHandler(usuarioView4.SomenteNumeros); return; } case 28: { UsuarioView usuarioView5 = this; ((TextBox)target).PreviewTextInput += new TextCompositionEventHandler(usuarioView5.SomenteNumeros); return; } case 29: { UsuarioView usuarioView6 = this; ((TextBox)target).LostFocus += new RoutedEventHandler(usuarioView6.FormatarTelefone); UsuarioView usuarioView7 = this; ((TextBox)target).PreviewTextInput += new TextCompositionEventHandler(usuarioView7.SomenteNumeros); return; } case 30: { ((ToggleButton)target).Click += new RoutedEventHandler(this.Click_VerificaAdmCentralSegurado); return; } } this._contentLoaded = true; } private async void TelaInicial_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { if (!this._setting) { if (((ComboBox)sender).SelectedItem != null) { if ((TipoTelaInicial)((ComboBox)sender).SelectedItem == 1 && this.ViewModel.Restricao(47)) { this._setting = true; ((ComboBox)sender).SelectedItem = (TipoTelaInicial)0; this._setting = false; if (!this._firstTime) { await this.ViewModel.ShowMessage("FAVOR DESABILITAR A RESTRIÇÃO AO PAINEL B.I. ANTES.", "OK", "", false); } else { this._firstTime = false; return; } } this._firstTime = false; } } } private async void UsuarioGrid_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { object obj; if (this.ViewModel.EnableGrid) { DataGrid dataGrid = (DataGrid)sender; if (dataGrid == null || dataGrid.SelectedIndex >= 0) { this.ViewModel.EnableGrid = false; UsuarioViewModel viewModel = this.ViewModel; obj = (dataGrid != null ? dataGrid.Items[dataGrid.SelectedIndex] : null); await viewModel.SelecionaUsuario((Usuario)obj); this.ViewModel.EnableGrid = true; } } } private async void Vinculo_OnClick(object sender, RoutedEventArgs e) { await this.ViewModel.OpenVinculo(); } } }