У меня есть приложение по прокату автомобилей, я перечисляю все текущие наймы, которые происходят в данный момент.Один автомобиль может иметь несколько прокатов, но одновременно может быть активен только один прокат.Чтобы добиться этого, у нас есть столбец с именем active, который принимает логическое значение true или false, это делается с помощью флажка в моей форме.
@Html.CheckboxFor(m => m.Active)
Что я хотел бы сделать, так это ввести проверку всякий раз, когдадобавлена новая аренда или обновлена существующая.Если для этого конкретного обновления или дополнения установлен флаг «Актив», то для всех остальных автомобилей для этого конкретного автомобиля установлено значение «ложь».
Я не уверен, как этого добиться, я знаю, что для этого потребуетсяпоместите в контроллер, что-то вроде:
public ActionResult AddRental(ProjectRental rental)
{
try {
if (ModelState.IsValid) {
if (rental.Active == true) {
//do something here to set the flags.
//var rentalActiveCheck = uow.RentalRepository.Get().Any(x => x.Active == payload.Active && x.CarID == payload.CarId);
}
uow.RentalRepository.Insert(rental);
uow.Save();
}
}
catch (DataException dex)
{
Console.WriteLine(dex);
ModelState.AddModelError(string.Empty, "Unable to save changes. Try again.");
}
return RedirectToAction("Index", "Home");
}
}
Аналогичный метод будет использоваться для обновления, я думаю.Таким образом, чтобы подвести итог, всякий раз, когда добавляется период проката для конкретного автомобиля или обновляется существующий период, для которого активный флаг установлен в «истина», другие записи устанавливаются в «ложь».Это делается для того, чтобы гарантировать, что в определенный момент времени существует только один активный прокат автомобилей.
Любая помощь приветствуется.