using Gestor.Application.Helpers; using Gestor.Application.ViewModels.Generic; using Gestor.Model.Domain.Generic; using Gestor.Model.Domain.Seguros; 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.Ferramentas { public class IncluirSeguradoraViewModel : BaseSegurosViewModel { private Seguradora _selectedSeguradora; private Seguradora _adicionarSeguradora; private List _seguradorasAdicionadas; private ObservableCollection _seguradoras; private string _filtro; public Seguradora AdicionarSeguradora { get { return this._adicionarSeguradora; } set { this._adicionarSeguradora = value; base.OnPropertyChanged("AdicionarSeguradora"); } } public string Filtro { get { return this._filtro; } set { this._filtro = value; base.OnPropertyChanged("Filtro"); } } public ObservableCollection Seguradoras { get { return this._seguradoras; } set { this._seguradoras = value; base.OnPropertyChanged("Seguradoras"); } } public List SeguradorasAdicionadas { get { return this._seguradorasAdicionadas; } set { this._seguradorasAdicionadas = value; base.OnPropertyChanged("SeguradorasAdicionadas"); } } public Seguradora SelectedSeguradora { get { return this._selectedSeguradora; } set { this._selectedSeguradora = value; base.OnPropertyChanged("SelectedSeguradora"); } } public IncluirSeguradoraViewModel(List seguradoras) { this.SeguradorasAdicionadas = seguradoras; } public async void Pesquisar() { if (!string.IsNullOrWhiteSpace(this.Filtro) && this.Filtro.Length >= 3) { string str = Uri.EscapeDataString(this.Filtro); List seguradoras = await Connection.Get>(string.Concat("Seguradoras/search?cia=", str), true, false); this.Seguradoras = new ObservableCollection( from x in seguradoras where this.SeguradorasAdicionadas.All((Seguradora y) => y.get_Id() != x.get_Id()) select x); } } } }