public string Free(int?ID, int?dist) { Car carFree = null; var days = 0.0; JavaScriptSerializer TheSerializer = new JavaScriptSerializer(); using (RentCar rentM = new RentCar()) { // search last active rent by car id CarsRent rent = rentM.SearchFor(c => c.NumCar == ID).LastOrDefault(); if (rent != null) { rent.RealFinishRent = System.DateTime.Now; rentM.Update(rent); days = (rent.FinishRent - rent.StartRent).TotalDays; // search & free-up car using (CarM tCar = new CarM()) { carFree = tCar.SearchFor(c => c.CarNumber == ID).First(); carFree.FreeForRent = true; if (dist != null) { carFree.CurrentDistance = (int)dist; } tCar.Update(carFree); } // succsess response var TheJson = TheSerializer.Serialize(new { ID = carFree.CarNumber, CarModel = carFree.CarModel, Days = days, } ); return(TheJson); } else { // bad response var TheJsonErr = TheSerializer.Serialize(new { text = "Invalid rent detected" } ); return(TheJsonErr); } } }
public string Edit(CarsRent curr) { // serialization instance JavaScriptSerializer TheSerializer = new JavaScriptSerializer(); try { // search rent in data base using (RentCar rent = new RentCar()) { // update CarsRent eqv = rent.GetById(curr.id); if (eqv != null) { eqv.StartRent = curr.StartRent; eqv.FinishRent = curr.FinishRent; eqv.RealFinishRent = curr.RealFinishRent; rent.Update(eqv); } } // response success var TheJson = TheSerializer.Serialize(new { id = curr.id, NumCar = curr.NumCar, NumUser = curr.NumUser, StartRent = curr.StartRent, FinishRent = curr.FinishRent, RealFinishRent = curr.RealFinishRent, } ); return(TheJson); } catch { // bad response var TheJsonErr = TheSerializer.Serialize(new { text = "Invalid operaton..." } ); return(TheJsonErr); } }
/// <summary> /// deleting rents /// </summary> /// <param name="id">rent id</param> /// <returns>redirect to index action</returns> public ActionResult Delete(int id) { try { using (RentCar c = new RentCar()) { CarsRent finded = c.GetById(id); c.Delete(finded); } TempData["RentDel"] = "Rent information was removed from system..."; return(RedirectToAction("Index")); } catch { TempData["RentDel"] = "Remove unfortunately has stopped..."; return(RedirectToAction("Index")); } }
/// <summary> /// Implementention IModelBinder interface /// combine 2 models /// </summary> /// <param name="controllerContext"></param> /// <param name="bindingContext"></param> /// <returns>OrderRentModel</returns> public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { HttpContextBase objContext = controllerContext.HttpContext; //getting fields from request string userId = objContext.Request.Form["user"]; string carId = objContext.Request.Form["car"]; string start = objContext.Request.Form["start"]; string finish = objContext.Request.Form["finish"]; // creating models accordingly request UserM um = new UserM(); CarM cm = new CarM(); var UID = int.Parse(userId); var CID = int.Parse(carId); Car auto = cm.SearchFor(c => c.CarNumber == CID).FirstOrDefault(); User user = um.SearchFor(u => u.IdNumber == UID).FirstOrDefault(); CarsRent rent = new CarsRent(); rent.NumCar = int.Parse(carId); rent.NumUser = int.Parse(userId); rent.StartRent = DateTime.Parse(start); rent.FinishRent = DateTime.Parse(finish); rent.RealFinishRent = DateTime.Parse(finish); //rent.User = user; //rent.Car = auto; //returned model OrderRentModel rentModel = new OrderRentModel() { cars = new List <Car>() }; rentModel.cars.Add(auto); rentModel.user = user; rentModel.order = rent; return(rentModel); }