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 --- .../Configuracoes/ConfiguracoesViewModel.cs | 178 +++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 Codemerx/Gestor.Application/ViewModels/Configuracoes/ConfiguracoesViewModel.cs (limited to 'Codemerx/Gestor.Application/ViewModels/Configuracoes') diff --git a/Codemerx/Gestor.Application/ViewModels/Configuracoes/ConfiguracoesViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Configuracoes/ConfiguracoesViewModel.cs new file mode 100644 index 0000000..b399eb5 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Configuracoes/ConfiguracoesViewModel.cs @@ -0,0 +1,178 @@ +using Gestor.Application.Helpers; +using Gestor.Application.Servicos.Configuracoes; +using Gestor.Application.ViewModels.Generic; +using Gestor.Common.Validation; +using Gestor.Model.Common; +using Gestor.Model.Domain.Configuracoes; +using Gestor.Model.Domain.Generic; +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.Configuracoes +{ + public class ConfiguracoesViewModel : BaseViewModel + { + private bool _hasRows; + + private ObservableCollection _configuracoes; + + private Configuracao _selectedConfiguracao; + + private string _descricao; + + private bool _carregando; + + private ObservableCollection _configuracoesAdicionadas; + + private ConfuguracoesServico _servico + { + get; + set; + } + + public bool Carregando + { + get + { + return this._carregando; + } + set + { + this._carregando = value; + base.OnPropertyChanged("Carregando"); + } + } + + public ObservableCollection Configuracoes + { + get + { + return this._configuracoes; + } + set + { + this._configuracoes = value; + base.EnableFields = (value != null ? value.Count > 0 : false); + base.OnPropertyChanged("Configuracoes"); + } + } + + public ObservableCollection ConfiguracoesAdicionadas + { + get + { + return this._configuracoesAdicionadas; + } + set + { + this._configuracoesAdicionadas = value; + this.HasRows = (value != null ? value.Count > 0 : false); + this.PopularConfiguracoes(value); + base.OnPropertyChanged("ConfiguracoesAdicionadas"); + } + } + + public string Descricao + { + get + { + return this._descricao; + } + set + { + this._descricao = value; + base.OnPropertyChanged("Descricao"); + } + } + + public bool HasRows + { + get + { + return this._hasRows; + } + set + { + this._hasRows = value; + base.OnPropertyChanged("HasRows"); + } + } + + public Configuracao SelectedConfiguracao + { + get + { + return this._selectedConfiguracao; + } + set + { + this._selectedConfiguracao = value; + this.Descricao = ValidationHelper.GetCategory(value); + base.OnPropertyChanged("SelectedConfiguracao"); + } + } + + public ConfiguracoesViewModel() + { + this._servico = new ConfuguracoesServico(); + base.EnableMenu = true; + } + + public async Task BuscarConfiguracoes() + { + List configuracaoSistemas = await this._servico.Buscar(); + List configuracaoSistemas1 = configuracaoSistemas; + Recursos.Configuracoes = ( + from x in configuracaoSistemas1 + orderby ValidationHelper.GetDescription(x.get_Configuracao()) + select x).ToList(); + this.ConfiguracoesAdicionadas = new ObservableCollection(configuracaoSistemas); + } + + public async Task Excluir(ConfiguracaoSistema configuracao) + { + if (await this._servico.Excluir(configuracao)) + { + await this.BuscarConfiguracoes(); + } + } + + private void PopularConfiguracoes(ObservableCollection configuracoes) + { + if (configuracoes == null) + { + return; + } + List configuracaos = new List(); + foreach (Configuracao configuracao in + from x in (Configuracao[])Enum.GetValues(typeof(Configuracao)) + orderby ValidationHelper.GetDescription(x) + select x) + { + if (configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == configuracao)) + { + continue; + } + configuracaos.Add(configuracao); + } + this.Configuracoes = new ObservableCollection(configuracaos); + this.SelectedConfiguracao = this.Configuracoes.FirstOrDefault(); + } + + public async Task Salvar() + { + ConfuguracoesServico confuguracoesServico = this._servico; + ConfiguracaoSistema configuracaoSistema = new ConfiguracaoSistema(); + configuracaoSistema.set_Configuracao(this.SelectedConfiguracao); + if (await confuguracoesServico.Salvar(configuracaoSistema).get_Id() != 0) + { + await this.BuscarConfiguracoes(); + } + } + } +} \ No newline at end of file -- cgit v1.2.3