using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using Gestor.Application.Helpers; using Gestor.Application.ViewModels.Generic; using Gestor.Model.Domain.Generic; using Gestor.Model.Domain.Seguros; namespace Gestor.Application.ViewModels.Ferramentas; public class IncluirRamoViewModel : BaseSegurosViewModel { private Ramo _selectedRamo; private Ramo _adicionarRamo; private List _ramosAdicionadas; private ObservableCollection _ramos; private string _filtro; public Ramo SelectedRamo { get { return _selectedRamo; } set { _selectedRamo = value; OnPropertyChanged("SelectedRamo"); } } public Ramo AdicionarRamo { get { return _adicionarRamo; } set { _adicionarRamo = value; OnPropertyChanged("AdicionarRamo"); } } public List RamosAdicionadas { get { return _ramosAdicionadas; } set { _ramosAdicionadas = value; OnPropertyChanged("RamosAdicionadas"); } } public ObservableCollection Ramos { get { return _ramos; } set { _ramos = value; OnPropertyChanged("Ramos"); } } public string Filtro { get { return _filtro; } set { _filtro = value; OnPropertyChanged("Filtro"); } } public IncluirRamoViewModel(List ramos) { RamosAdicionadas = ramos; } public async void Pesquisar() { if (string.IsNullOrWhiteSpace(Filtro) || Filtro.Length < 3) { return; } string text = Uri.EscapeDataString(Filtro); Ramos = new ObservableCollection((await Connection.Get>("Ramos/search?ramo=" + text)).Where((Ramo x) => RamosAdicionadas.All((Ramo y) => ((DomainBase)y).Id != ((DomainBase)x).Id))); } }