//Rent a car u HTML public async Task <IEnumerable <Car> > SearchCarsForRent(SearchCarsForRentParameters scfrp) { var temp = await repo2.GetCarsOfCompanyForRent(scfrp.EnterpriseId); List <Car> retValue = new List <Car>(); List <DateTime> datesBetween2 = new List <DateTime>(); for (var date = scfrp.DateFrom; date <= scfrp.DateTo; date = date.AddDays(1)) { datesBetween2.Add(date); } bool enterpriseLocationFrom = false; bool enterpriseLocationTo = false; bool branchLocationFrom = false; bool branchLocationTo = false; bool rented = false; bool found = false; if (temp.Address.City.ToLower() == scfrp.PickUpPlace.ToLower()) { enterpriseLocationFrom = true; } if (temp.Address.City.ToLower() == scfrp.ReturnPlace.ToLower()) { enterpriseLocationTo = true; } foreach (var branch in temp.Branches) { if (branch.City.ToLower() == scfrp.PickUpPlace.ToLower()) { branchLocationFrom = true; } if (branch.City.ToLower() == scfrp.ReturnPlace.ToLower()) { branchLocationTo = true; } } if ((branchLocationFrom == true || enterpriseLocationFrom == true) && (branchLocationTo == true || enterpriseLocationTo == true)) { foreach (var car in temp.Cars) { List <DateTime> datesBetween = new List <DateTime>(); foreach (var res in car.Reservations) { for (var date = res.DateFrom; date <= res.DateTo; date = date.AddDays(1)) { datesBetween.Add(date); } } if (car.Type.ToLower() != scfrp.CarType.ToLower() || Int32.Parse(scfrp.NumberOfpassengers) > car.NumberOfSeats) { continue; } foreach (var date in datesBetween) { foreach (var date2 in datesBetween2) { if (date2 == date) { rented = true; } } } if (rented) { rented = false; continue; } if (scfrp.PriceFrom != "" && scfrp.PriceFrom != null) { if (Int32.Parse(scfrp.PriceFrom) > car.Price) { continue; } } if (scfrp.PriceTo != "" && scfrp.PriceTo != null) { if (Int32.Parse(scfrp.PriceTo) < car.Price) { continue; } } if (car.Discounts.Count() != 0) { List <DateTime> datesBetween3 = new List <DateTime>(); foreach (var res in car.Discounts) { for (var date = res.DiscountFrom; date <= res.DiscountTo; date = date.AddDays(1)) { datesBetween3.Add(date); } } foreach (var date1 in datesBetween3) { foreach (var date2 in datesBetween2) { if (date1 != date2) { found = true; } } } if (found) { retValue.Add(car); found = false; } } else { retValue.Add(car); } } } return(retValue); }