コード例 #1
0
ファイル: WorkerController.cs プロジェクト: vadimMv/Rent-Car
        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);
                }
            }
        }
コード例 #2
0
ファイル: WorkerController.cs プロジェクト: vadimMv/Rent-Car
        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);
            }
        }
コード例 #3
0
 /// <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"));
     }
 }
コード例 #4
0
        /// <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);
        }