//норм, но можно было 1: разделить Add и Update - с точки зрения бизнес логики это разные процессы //2 - смотри класс BicycleRepository public void SaveBicycle(Bicycle bicycle) { if (bicycle.BicycleId == 0) { context.Bicycles.Add(bicycle); context.SaveChanges(); context.BicyclesInStocks.Add( new BicyclesInStock { BicycleId = bicycle.BicycleId, RentCenterId = bicycle.RentCenterId} ); } else { Bicycle dbEntry = context.Bicycles.Find(bicycle.BicycleId); if (dbEntry != null) { dbEntry.Model = bicycle.Model; dbEntry.Description = bicycle.Description; dbEntry.RentPrice = bicycle.RentPrice; dbEntry.RentCenterId = bicycle.RentCenterId; dbEntry.ImageData = bicycle.ImageData; dbEntry.ImageMimeType = bicycle.ImageMimeType; } } context.SaveChanges(); }
public void TakeOnRent(Bicycle bicycle) { BicyclesInStock dbEntry = context.BicyclesInStocks.Find(bicycle.BicycleId, bicycle.RentCenterId); if (dbEntry != null) { HistoryRent history = AddHistory(dbEntry); BicyclesOnRent bicycleOnRent = new BicyclesOnRent { BicycleId = history.BicycleID, RentCenterId = history.RentIdOut, DateTimeOut = history.DateTimeOut, HistoryRentID = history.HistoryRentID }; context.BicyclesOnRents.Add(bicycleOnRent); context.BicyclesInStocks.Remove(dbEntry); } context.SaveChanges(); }
public ActionResult Edit(Bicycle bicycle, HttpPostedFileBase image) { if (ModelState.IsValid) { if (image != null) { bicycle.ImageMimeType = image.ContentType; bicycle.ImageData = new byte[image.ContentLength]; image.InputStream.Read(bicycle.ImageData, 0, image.ContentLength); } repository.SaveBicycle(bicycle); TempData["message"] = string.Format("Модель велосипеда {0} удачно сохранена в базе данных", bicycle.Model); return RedirectToAction("Index"); } else { return View(bicycle); } }
public ActionResult BackRent(Bicycle bicycle) { repository.BackRent(bicycle, UserRentId); return RedirectToAction("Index", new { UserRentId }); }
public ActionResult TakeOnRent(Bicycle bicycle) { repository.TakeOnRent(bicycle); return RedirectToAction("Index", new { UserRentId }); }
public void BackRent(Bicycle bicycle, int userRentId) { BicyclesOnRent bicycleOnRent = context.BicyclesOnRents.Find(bicycle.BicycleId, bicycle.RentCenterId); if(bicycleOnRent != null) { BicyclesInStock bicycleInStock = new BicyclesInStock { BicycleId = bicycleOnRent.BicycleId, RentCenterId = userRentId }; context.BicyclesInStocks.Add(bicycleInStock); HistoryRent dbEntry = context.HistoryRents.Find(bicycleOnRent.HistoryRentID); if(dbEntry != null) { dbEntry.DateTimeIn = DateTime.Now; dbEntry.RentIdIn = bicycleInStock.RentCenterId; dbEntry.DeltaTime = (dbEntry.DateTimeIn - dbEntry.DateTimeOut).Value.Seconds; context.BicyclesOnRents.Remove(bicycleOnRent); } Bicycle bicycledbEntry = context.Bicycles.Find(bicycle.BicycleId); if(bicycledbEntry != null) { bicycledbEntry.RentCenterId = bicycleInStock.RentCenterId; } } context.SaveChanges(); }