using Gestor.Application.Servicos.Seguros.Itens; using Gestor.Model.Domain.Seguros; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Runtime.CompilerServices; using System.Threading.Tasks; namespace Gestor.Application.ViewModels.Generic { public class SelecionarItensViewModel : BaseSegurosViewModel { private ItemServico _itemServico; private ObservableCollection _itens = new ObservableCollection(); private bool? _allSelected; private bool _allSelectedChanging; public bool? AllSelected { get { return this._allSelected; } set { bool? nullable = value; bool? nullable1 = this._allSelected; if (nullable.GetValueOrDefault() == nullable1.GetValueOrDefault() & nullable.HasValue == nullable1.HasValue) { return; } this._allSelected = value; this.AllSelectedChanged(); base.OnPropertyChanged("AllSelected"); } } public ObservableCollection Itens { get { return this._itens; } set { this._itens = value; base.OnPropertyChanged("Itens"); } } public SelecionarItensViewModel(long id) { this._itemServico = new ItemServico(); this.CarregarItens(id); } private void AllSelectedChanged() { if (this._allSelectedChanging) { return; } try { this._allSelectedChanging = true; if (this.AllSelected.HasValue) { foreach (Item iten in this.Itens) { iten.set_Selecionado(this.AllSelected.Value); } } } finally { this._allSelectedChanging = false; } } private async void CarregarItens(long id) { this.Itens = await this._itemServico.BuscarItens(id, 0); } } }