diff options
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Generic/DialogExportarPermissaoViewModel.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.ViewModels.Generic/DialogExportarPermissaoViewModel.cs | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Generic/DialogExportarPermissaoViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Generic/DialogExportarPermissaoViewModel.cs new file mode 100644 index 0000000..d2da048 --- /dev/null +++ b/Decompiler/Gestor.Application.ViewModels.Generic/DialogExportarPermissaoViewModel.cs @@ -0,0 +1,109 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Threading.Tasks; +using Gestor.Application.Servicos.Generic; +using Gestor.Common.Validation; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; + +namespace Gestor.Application.ViewModels.Generic; + +public class DialogExportarPermissaoViewModel : BaseSegurosViewModel +{ + private bool _enableGrid = true; + + private List<Usuario> _usuarios; + + private ObservableCollection<Usuario> _usuariosFiltrados = new ObservableCollection<Usuario>(); + + public bool EnableGrid + { + get + { + return _enableGrid; + } + set + { + _enableGrid = value; + OnPropertyChanged("EnableGrid"); + } + } + + public List<Usuario> Usuarios + { + get + { + return _usuarios; + } + set + { + _usuarios = value; + OnPropertyChanged("Usuarios"); + } + } + + public ObservableCollection<Usuario> UsuariosFiltrados + { + get + { + return _usuariosFiltrados; + } + set + { + _usuariosFiltrados = value; + OnPropertyChanged("UsuariosFiltrados"); + } + } + + public DialogExportarPermissaoViewModel(long idUsuario) + { + Seleciona(idUsuario); + } + + private async void Seleciona(long idUsuario) + { + Loading(isLoading: true); + await SelecionaUsuarios(idUsuario); + Loading(isLoading: false); + } + + private async Task SelecionaUsuarios(long idUsuario) + { + EnableGrid = false; + Loading(isLoading: true); + Usuarios = (from x in await new BaseServico().BuscarUsuariosAsync() + where !x.Excluido && ((DomainBase)x).Id != idUsuario + orderby x.Nome + select x).ToList(); + UsuariosFiltrados = new ObservableCollection<Usuario>(Usuarios); + Loading(isLoading: false); + EnableGrid = true; + } + + internal async Task<List<Usuario>> Filtrar(string value) + { + return await Task.Run(() => FiltrarUsuario(value)); + } + + public List<Usuario> FiltrarUsuario(string filter) + { + UsuariosFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<Usuario>(Usuarios) : new ObservableCollection<Usuario>(from x in Usuarios + where ValidationHelper.RemoveDiacritics(x.Nome.ToUpper().Trim()).Contains(ValidationHelper.RemoveDiacritics(filter)) + orderby !x.Excluido descending, x.Nome + select x)); + return UsuariosFiltrados.ToList(); + } + + public void Selecionar() + { + if (UsuariosFiltrados != null && UsuariosFiltrados.Count != 0) + { + UsuariosFiltrados.ToList().ForEach(delegate(Usuario x) + { + x.Selecionado = !x.Selecionado; + }); + UsuariosFiltrados = new ObservableCollection<Usuario>(UsuariosFiltrados); + } + } +} |