public IActionResult SelectDate() { var user = HttpContext.User.Identity.Name.ToString(); var model = new RentedCarsRecordSelectDateViewModel(); return(View(model)); }
public IActionResult Add(RentedCarsRecordSelectDateViewModel model) { if (ModelState.IsValid) { if (model.EndDate < model.StartDate || model.StartDate < DateTime.Now) { TempData["message"] = "Invalid date"; return(RedirectToAction("SelectDate", "RentedCarsRecord")); } var user = HttpContext.User.Identity.Name.ToString(); var customers = _customerService.GetAll().Where(p => p.User == user).ToList(); //Records with state = A var records = _rentedCarsRecordService.GetAll().Where(p => p.User == user && p.State == "A").ToList(); //Suitable cars in records var suitableCars = _rentedCarsRecordService.GetDateByRange(model.StartDate, model.EndDate).Where(p => p.User == user && p.State == "A").ToList(); //---------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------- // Unsuitable cars list var unsuitableCarsPlateNumber = new List <string>(); bool flag = false; for (int i = 0; i < records.Count; i++) { for (int j = 0; j < suitableCars.Count; j++) { if (records[i].PlateNumber == suitableCars[j].PlateNumber) { flag = true; break; } } if (flag == false) { unsuitableCarsPlateNumber.Add(records[i].PlateNumber); } flag = false; } //---------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------- // All cars var allCars = _carService.GetAll().Where(p => p.User == user).ToList(); // all cars list var allCarsPlateNumber = new List <string>(); foreach (var car in allCars) { allCarsPlateNumber.Add(car.PlateNumber); } // Suitable cars list var suitableCarsPlateNumber = new List <string>(); bool _flag = false; for (int i = 0; i < allCarsPlateNumber.Count; i++) { for (int j = 0; j < unsuitableCarsPlateNumber.Count; j++) { if (allCarsPlateNumber[i] == unsuitableCarsPlateNumber[j]) { _flag = true; break; } } if (_flag == false) { suitableCarsPlateNumber.Add(allCarsPlateNumber[i]); } _flag = false; } //---------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------- // All suitableCarsInformations var suitableCarsInformations = new List <Car>(); foreach (var plateNumber in suitableCarsPlateNumber) { suitableCarsInformations.Add(allCars.Find(p => p.PlateNumber == plateNumber)); } // All customers information List <SelectListItem> customersList = new List <SelectListItem>(); foreach (var customer in customers) { customersList.Add(new SelectListItem { Text = customer.TC + "-" + customer.Name + " " + customer.Surname, Value = customer.TC }); } // Add View Model var addModel = new RentedCarsRecordAddViewModel(); addModel.User = user; addModel.State = "A"; addModel.StartDate = model.StartDate; addModel.EndDate = model.EndDate; addModel.Customers = customersList; addModel.Cars = suitableCarsInformations; return(View(addModel)); } TempData["message"] = "Failed to reach add page !"; return(RedirectToAction("Index", "RentedCarsRecord")); }