Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Reactive;
- using System.Reactive.Concurrency;
- using CTR.Infrastructure.Repository;
- using CTR.Models.POCO;
- using CTR.Utils;
- using ReactiveUI;
- namespace CTR.ViewModels
- {
- public class CadastroDotacaoViewModel : ViewModelBase
- {
- public CadastroDotacaoViewModel(IRepository repository, DispatcherScheduler uiDispatcherScheduler)
- : base(repository, uiDispatcherScheduler)
- {
- // Inicialização dos campos
- Secretarias = new ObservableCollection<Secretaria>();
- SalvarDotacaoCommand = ReactiveCommand.Create(SalvarDotacaoExecute);
- // Pegamos todas as secretarias previamente cadastradas
- Repository.GetAll<Secretaria>()
- .Busy(this)
- .Subscribe(CarregarSecretarias); // Chamamos a rotina CarregarSecretarias quando elas forem regastadas do banco
- }
- public string Descricao { get; set; }
- /// <summary>
- /// Secretarias previamente cadastradas. Essa propriedade representa uma lista de secretarias (no caso uma comboBox)
- /// </summary>
- public ObservableCollection<Secretaria> Secretarias { get; }
- /// <summary>
- /// Representa a secretaria selecionada pelo usuário
- /// </summary>
- public Secretaria SecretariaSelecionada { get; set; }
- /// <summary>
- /// Comando para salvar dotação
- /// </summary>
- public ReactiveCommand<Unit, Unit> SalvarDotacaoCommand { get; }
- /// <summary>
- /// Rotina de carregamento das secretarias
- /// </summary>
- /// <param name="secretarias">As secretarias que foram regatadas do banco</param>
- private void CarregarSecretarias(IEnumerable<Secretaria> secretarias)
- {
- // Aqui pegamos as secretadas que foram obtidas no banco e populamos a lista de secretarias que iremos trabalhar.
- foreach(var secretaria in secretarias)
- {
- Secretarias.Add(secretaria);
- }
- }
- private void SalvarDotacaoExecute()
- {
- // Criamos uma dotação com os dados contido na tela
- var dotacao = new Dotacao
- {
- Descricao = Descricao,
- SecretariaId = SecretariaSelecionada.SecretariaId
- };
- // Salvamos a dotação no banco
- Repository.Add(dotacao).Subscribe();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement