From 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 Mon Sep 17 00:00:00 2001 From: Lucas Faria Mendes Date: Mon, 30 Mar 2026 10:38:18 -0300 Subject: chore: location --- .../Generic/DialogExportarPermissaoViewModel.cs | 122 +++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 Codemerx/Gestor.Application/ViewModels/Generic/DialogExportarPermissaoViewModel.cs (limited to 'Codemerx/Gestor.Application/ViewModels/Generic/DialogExportarPermissaoViewModel.cs') diff --git a/Codemerx/Gestor.Application/ViewModels/Generic/DialogExportarPermissaoViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Generic/DialogExportarPermissaoViewModel.cs new file mode 100644 index 0000000..dd39cab --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Generic/DialogExportarPermissaoViewModel.cs @@ -0,0 +1,122 @@ +using Gestor.Application.Servicos.Generic; +using Gestor.Common.Validation; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; + +namespace Gestor.Application.ViewModels.Generic +{ + public class DialogExportarPermissaoViewModel : BaseSegurosViewModel + { + private bool _enableGrid = true; + + private List _usuarios; + + private ObservableCollection _usuariosFiltrados = new ObservableCollection(); + + public bool EnableGrid + { + get + { + return this._enableGrid; + } + set + { + this._enableGrid = value; + base.OnPropertyChanged("EnableGrid"); + } + } + + public List Usuarios + { + get + { + return this._usuarios; + } + set + { + this._usuarios = value; + base.OnPropertyChanged("Usuarios"); + } + } + + public ObservableCollection UsuariosFiltrados + { + get + { + return this._usuariosFiltrados; + } + set + { + this._usuariosFiltrados = value; + base.OnPropertyChanged("UsuariosFiltrados"); + } + } + + public DialogExportarPermissaoViewModel(long idUsuario) + { + this.Seleciona(idUsuario); + } + + internal async Task> Filtrar(string value) + { + List usuarios = await Task.Run>(() => this.FiltrarUsuario(value)); + return usuarios; + } + + public List FiltrarUsuario(string filter) + { + this.UsuariosFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection(this.Usuarios) : new ObservableCollection( + from x in this.Usuarios + where ValidationHelper.RemoveDiacritics(x.get_Nome().ToUpper().Trim()).Contains(ValidationHelper.RemoveDiacritics(filter)) + orderby !x.get_Excluido() descending, x.get_Nome() + select x)); + return this.UsuariosFiltrados.ToList(); + } + + private async void Seleciona(long idUsuario) + { + base.Loading(true); + await this.SelecionaUsuarios(idUsuario); + base.Loading(false); + } + + public void Selecionar() + { + if (this.UsuariosFiltrados == null || this.UsuariosFiltrados.Count == 0) + { + return; + } + this.UsuariosFiltrados.ToList().ForEach((Usuario x) => x.set_Selecionado(!x.get_Selecionado())); + this.UsuariosFiltrados = new ObservableCollection(this.UsuariosFiltrados); + } + + private async Task SelecionaUsuarios(long idUsuario) + { + this.EnableGrid = false; + base.Loading(true); + List usuarios = await (new BaseServico()).BuscarUsuariosAsync(); + DialogExportarPermissaoViewModel list = this; + IEnumerable usuarios1 = usuarios.Where((Usuario x) => { + if (x.get_Excluido()) + { + return false; + } + return x.get_Id() != idUsuario; + }); + list.Usuarios = ( + from x in usuarios1 + orderby x.get_Nome() + select x).ToList(); + this.UsuariosFiltrados = new ObservableCollection(this.Usuarios); + base.Loading(false); + this.EnableGrid = true; + } + } +} \ No newline at end of file -- cgit v1.2.3