public int getPricePerHour(ShowParking sp)
        {
            int      price     = 0;
            var      timeStart = sp.TimeIn.ToString("HH:mm");
            DateTime st        = Convert.ToDateTime(timeStart);

            DateTime startDt = new DateTime(sp.DateIn.Date.Year, sp.DateIn.Date.Month, sp.DateIn.Date.Day, st.Hour, st.Minute, st.Second);

            var      timeEnd = sp.TimeOut.ToString("HH:mm");
            DateTime et      = Convert.ToDateTime(timeEnd);
            DateTime endtDt  = new DateTime(sp.DateOut.Date.Year, sp.DateOut.Date.Month, sp.DateOut.Date.Day, et.Hour, et.Minute, et.Second);
            TimeSpan span    = endtDt.Subtract(startDt);
            var      hours   = span.Hours;
            var      days    = span.Days;

            if (hours <= 2 && days == 0)
            {
                price = 2;
            }
            else if (days > 0)
            {
                price = hours + (days * 24);
            }
            else
            {
                price = hours;
            }
            return(price);
        }
Esempio n. 2
0
        // GET: Reservation

        public ActionResult ReserveParking(ShowParking sp)
        {
            //ShowParking sp = (ShowParking)ob;
            Reserve reserve = new Reserve();

            reserve.ParkingId      = sp.ParkingID;
            reserve.DateIn         = sp.DateIn;
            reserve.DateOut        = sp.DateOut;
            reserve.TimeIn         = sp.TimeIn;
            reserve.TimeOut        = sp.TimeOut;
            reserve.Asiel          = sp.Asiel;
            reserve.LevelNumber    = Convert.ToInt32(sp.Selectedlevel);
            reserve.BuildingNumber = Convert.ToInt32(sp.Selectedbuilding);
            reserve.amount         = (float)sp.Price;



            try {
                ParkingManagement pm = new ParkingManagement();

                reserve.ID         = pm.addReservation(reserve);
                Session["reserve"] = reserve;


                BackgroundJob.Schedule(() => deleteRow(reserve.ID), TimeSpan.FromMinutes(10));

                return(View("ReserveView", reserve));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        // GET: Parking/Edit/5 get the View of Parking menu
        public ActionResult Show()
        {
            connStr = ConfigurationManager.ConnectionStrings["ParkingManagementConnection"].ConnectionString;
            ShowParking showP = new ShowParking();

            try
            {
                ParkingManagement p = new ParkingManagement();
                p.updateExpiredParkingByDate(connStr);
                return(View("ShowParkings", showP));
            }
            catch (Exception ex)
            {
                ViewBag.errorMessage = "Could Not Update Expired Parking " + ex.Message;
                return(View("ShowParkings", showP));
            }
        }
 public ActionResult ReserveParking(ShowParking sp, string parkingIdButton, List <Parking> parking)
 {
     sp.ParkingID   = parkingIdButton;
     sp.ParkingList = (List <Parking>)Session["parkings"];
     //get the selected Parking from Parking List
     if (sp.ParkingList != null)
     {
         for (int i = 0; i < sp.ParkingList.Count; i++)
         {
             if (sp.ParkingList[i].ParkingNumber == sp.ParkingID)
             {
                 sp.Asiel = sp.ParkingList[i].Asiel;
                 sp.Price = sp.ParkingList[i].Price;
             }
         }
     }
     Session["parkings"] = null;
     return(RedirectToAction("ReserveParking", "Reservation", new RouteValueDictionary(sp)));
 }
        public List <string> getReservedList(ShowParking sp, List <ShowParking> lsp)
        {
            List <string> listOFID = new List <string>();

            for (int i = 0; i < lsp.Count; i++)
            {
                if (sp.DateIn > lsp[i].DateOut & sp.DateIn < lsp[i].DateIn)
                {
                    listOFID.Add(lsp[i].ParkingID);
                }
                else if (sp.DateIn == lsp[i].DateIn)
                {
                    listOFID.Add(lsp[i].ParkingID);
                }
                else if (sp.DateOut > lsp[i].DateIn & sp.DateOut < lsp[i].DateOut)
                {
                    listOFID.Add(lsp[i].ParkingID);
                }
            }
            return(listOFID);
        }
        public ActionResult ShowController(ShowParking sp)
        {
            connStr = ConfigurationManager.ConnectionStrings["ParkingManagementConnection"].ConnectionString;
            try
            {
                ParkingManagement  pm                = new ParkingManagement();
                List <Parking>     parkingList       = pm.getParkingList(connStr, sp);
                List <ShowParking> ListOfReservation = pm.getParkingFromReservation(connStr, sp);

                List <string> reservedId = getReservedList(sp, ListOfReservation);

                int price = getPricePerHour(sp);
                for (int i = 0; i < parkingList.Count; i++)
                {
                    for (int j = 0; j < reservedId.Count; j++)
                    {
                        if (parkingList[i].ParkingNumber == reservedId[j])
                        {
                            parkingList[i].ParkingNumber = null;
                        }
                    }
                    parkingList[i].Price = price;
                }

                sp.ParkingList = parkingList;
                sp.ListOfAsiel = pm.getNumberOfAsiel(connStr, sp.Selectedbuilding, sp.Selectedlevel);
                sp.ListOfAsiel.Sort();
                Session["parkings"] = parkingList;
                return(View("ShowParkings", sp));
            }
            catch (Exception ex)
            {
                ViewBag.errorMessage = "Error occur while fetching parking from DataBase" + ex.Message;
                return(View("ShowParkings", sp));
            }
        }