public ClientFilterViewModel List(ClientFilterViewModel clientFilter) { var client = new Client() { Classification = new Classification((clientFilter.ClassificationId != null ? clientFilter.ClassificationId.Value : 0)), Gender = new Gender((clientFilter.GenderId != null ? clientFilter.GenderId.Value : 0)), Id = clientFilter.Id, LastPurchase = clientFilter.LastPurchase, Name = clientFilter.Name, Phone = clientFilter.Phone, Region = new Region((clientFilter.RegionId != null ? clientFilter.RegionId.Value : 0), new City((clientFilter.CityId != null ? clientFilter.CityId.Value : 0))), Seller = new User((clientFilter.GetSellerId() != null ? clientFilter.GetSellerId().Value : 0)) }; var clients = _repository.List(client, clientFilter.LastPurchaseUntil).ToList(); var clientsViewModel = clients.Select(x => new ClientResultViewModel() { City = x.Region.City.Description, Classification = x.Classification.Description, Gender = x.Gender.Description, Id = x.Id, LastPurchase = x.LastPurchase, Name = x.Name, Phone = x.Phone, RegionId = x.Region.Id, Seller = x.Seller.Email, Region = x.Region.Description }).ToList(); clientFilter.Classifications = _classificationRepository.List().ToList().Select(m => new SelectListItem { Value = m.Id.ToString(), Text = m.Description }).ToList(); clientFilter.Regions = _regionRepository.ListByCity(clientFilter.CityId).ToList().Select(m => new SelectListItem { Value = m.Id.ToString(), Text = m.Description }).ToList(); clientFilter.Sellers = _userRepository.ListSeller().ToList().Select(m => new SelectListItem { Value = m.Id.ToString(), Text = m.Email }).ToList(); clientFilter.Genders = _genderRepository.List().ToList().Select(m => new SelectListItem { Value = m.Id.ToString(), Text = m.Description }).ToList(); clientFilter.Cities = _cityRepository.List().ToList().Select(m => new SelectListItem { Value = m.Id.ToString(), Text = m.Description }).ToList(); clientFilter.SellerId = null; clientFilter.Clients = clientsViewModel; return(clientFilter); }