using CsQuery.ExtensionMethods.Internal; using Gestor.Application.Servicos.Seguros.Itens; using Gestor.Application.ViewModels.Generic; using Gestor.Common.Validation; using Gestor.Model.Domain.Common; 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.Seguros.Itens { public class BuscarModeloViewModel : BaseSegurosViewModel { private Auto _selectedBuscaModelo = new Auto(); private ObservableCollection _modelosAutos = new ObservableCollection(); private Fipe _resultado = new Fipe(); public ObservableCollection ModelosAutos { get { return this._modelosAutos; } set { this._modelosAutos = value; base.OnPropertyChanged("ModelosAutos"); } } public Fipe Resultado { get { return this._resultado; } set { this._resultado = value; base.OnPropertyChanged("Resultado"); } } public Auto SelectedBuscaModelo { get { return this._selectedBuscaModelo; } set { this._selectedBuscaModelo = value; base.OnPropertyChanged("SelectedBuscaModelo"); } } public BuscarModeloViewModel(string modelo, string ano) { Auto auto = new Auto(); auto.set_AnoModelo(ano); auto.set_Modelo(modelo); this.SelectedBuscaModelo = auto; } public async void Pesquisar() { string modelo = this.SelectedBuscaModelo.get_Modelo(); int num = ValidationHelper.ToInt(this.SelectedBuscaModelo.get_AnoModelo()); List list = await (new ItemServico()).BuscarPorModelo(modelo); if ((this.SelectedBuscaModelo.get_AnoModelo() != null || ExtensionMethods.IsNullOrEmpty(list)) && this.SelectedBuscaModelo.get_Id() != 0) { list = list.Where((Fipe x) => { if (x.get_AnoMinimo() > num) { return false; } return x.get_AnoMaximo() >= num; }).ToList(); this.ModelosAutos = new ObservableCollection(list); } else { this.ModelosAutos = new ObservableCollection(list); } } } }