summaryrefslogtreecommitdiff
path: root/Gestor.Application/ViewModels/Configuracoes
diff options
context:
space:
mode:
Diffstat (limited to 'Gestor.Application/ViewModels/Configuracoes')
-rw-r--r--Gestor.Application/ViewModels/Configuracoes/ConfiguracoesViewModel.cs178
1 files changed, 178 insertions, 0 deletions
diff --git a/Gestor.Application/ViewModels/Configuracoes/ConfiguracoesViewModel.cs b/Gestor.Application/ViewModels/Configuracoes/ConfiguracoesViewModel.cs
new file mode 100644
index 0000000..b399eb5
--- /dev/null
+++ b/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<Configuracao> _configuracoes;
+
+ private Configuracao _selectedConfiguracao;
+
+ private string _descricao;
+
+ private bool _carregando;
+
+ private ObservableCollection<ConfiguracaoSistema> _configuracoesAdicionadas;
+
+ private ConfuguracoesServico _servico
+ {
+ get;
+ set;
+ }
+
+ public bool Carregando
+ {
+ get
+ {
+ return this._carregando;
+ }
+ set
+ {
+ this._carregando = value;
+ base.OnPropertyChanged("Carregando");
+ }
+ }
+
+ public ObservableCollection<Configuracao> Configuracoes
+ {
+ get
+ {
+ return this._configuracoes;
+ }
+ set
+ {
+ this._configuracoes = value;
+ base.EnableFields = (value != null ? value.Count > 0 : false);
+ base.OnPropertyChanged("Configuracoes");
+ }
+ }
+
+ public ObservableCollection<ConfiguracaoSistema> 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<ConfiguracaoSistema> configuracaoSistemas = await this._servico.Buscar();
+ List<ConfiguracaoSistema> configuracaoSistemas1 = configuracaoSistemas;
+ Recursos.Configuracoes = (
+ from x in configuracaoSistemas1
+ orderby ValidationHelper.GetDescription(x.get_Configuracao())
+ select x).ToList<ConfiguracaoSistema>();
+ this.ConfiguracoesAdicionadas = new ObservableCollection<ConfiguracaoSistema>(configuracaoSistemas);
+ }
+
+ public async Task Excluir(ConfiguracaoSistema configuracao)
+ {
+ if (await this._servico.Excluir(configuracao))
+ {
+ await this.BuscarConfiguracoes();
+ }
+ }
+
+ private void PopularConfiguracoes(ObservableCollection<ConfiguracaoSistema> configuracoes)
+ {
+ if (configuracoes == null)
+ {
+ return;
+ }
+ List<Configuracao> configuracaos = new List<Configuracao>();
+ foreach (Configuracao configuracao in
+ from x in (Configuracao[])Enum.GetValues(typeof(Configuracao))
+ orderby ValidationHelper.GetDescription(x)
+ select x)
+ {
+ if (configuracoes.Any<ConfiguracaoSistema>((ConfiguracaoSistema x) => x.get_Configuracao() == configuracao))
+ {
+ continue;
+ }
+ configuracaos.Add(configuracao);
+ }
+ this.Configuracoes = new ObservableCollection<Configuracao>(configuracaos);
+ this.SelectedConfiguracao = this.Configuracoes.FirstOrDefault<Configuracao>();
+ }
+
+ 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