Ejemplo n.º 1
0
        public void CheckOut(int userId)
        {
            var parking = _context.Parkings.SingleOrDefault(p => p.UserId == userId);

            if (parking == null)
            {
                throw new AppException("Can't Find Your Parking");
            }
            parking.isActive     = false;
            parking.UserCheckOut = DateTime.Now;
            var      space       = _context.Spaces.Find(parking.SpaceId);
            var      garage      = _context.Garages.Find(parking.GarageId);
            TimeSpan interval    = parking.UserCheckOut - parking.UserCheckIn;
            int      parkingRate = Int32.Parse(garage.ParkingRate);
            double   parkingCost = (parkingRate * interval.TotalMinutes) / 60;

            int cleaningCost = 0;

            if (parking.withCleaningService)
            {
                cleaningCost = Int32.Parse(garage.CleaningRate);
            }


            double Cost = parkingCost + cleaningCost;

            Console.WriteLine("\n" + parkingCost + cleaningCost + "\n");

            parking.CleaningCost = cleaningCost.ToString();
            parking.ParkingCost  = parkingCost.ToString();
            parking.Cost         = Cost.ToString();
            _context.Parkings.Update(parking);
            _context.SaveChanges();
            ParkingHistory parkingHistory = new ParkingHistory();

            parkingHistory.UserId              = parking.UserId;
            parkingHistory.VehicleNumber       = parking.VehicleNumber;
            parkingHistory.DriverName          = parking.DriverName;
            parkingHistory.SpaceId             = parking.SpaceId;
            parkingHistory.AllocationMangerId  = parking.AllocationMangerId;
            parkingHistory.GarageId            = parking.GarageId;
            parkingHistory.UserCheckIn         = parking.UserCheckIn;
            parkingHistory.UserCheckOut        = parking.UserCheckOut;
            parkingHistory.withCleaningService = parking.withCleaningService;
            parkingHistory.Cost         = parking.Cost;
            parkingHistory.ParkingCost  = parking.ParkingCost;
            parkingHistory.CleaningCost = parking.CleaningCost;
            parkingHistory.interval     = ToReadableString(interval);
            _context.ParkingHistories.Add(parkingHistory);
            _context.SaveChanges();

            _context.Parkings.Remove(parking);
            _context.SaveChanges();

            _spaceService.MinusSpaceCapacity(space);
            _garageService.MinusGarageCapacity(garage);
        }
Ejemplo n.º 2
0
        private void btnExit_Click(object sender, EventArgs e)
        {
            if (ddlType.Text == "Select")
            {
                ParkingHistory parkingDetail = new ParkingHistory();
                if (txtVehicleNo.Text.Trim().Length > 0)
                {
                    parkingDetail = objBAL.GetVehicleDetail(txtVehicleNo.Text.Trim());
                    if (parkingDetail.ParkingSlot != null)
                    {
                        string type = parkingDetail.ParkingSlot.Substring(0, 1);
                        if (type == "S")
                        {
                            typeId = 1;
                        }
                        if (type == "M")
                        {
                            typeId = 2;
                        }
                        if (type == "L")
                        {
                            typeId = 3;
                        }

                        GetProperParking(typeId);
                        string updateQry     = "Update ParkingHistory Set ExitTime=GETDATE()  where VehicleNo='" + parkingDetail.VehicleNo + "' and Id='" + parkingDetail.Id + "'";
                        string exitParkQuery = "Update " + tableName + " Set ExitTime=GETDATE(), IsAvailable=1 where VehicleNo='" + parkingDetail.VehicleNo + "' and SlotNo='" + parkingDetail.ParkingSlot + "';" + updateQry;
                        bool   status        = objBAL.SaveDetail(exitParkQuery);
                        if (status)
                        {
                            MessageBox.Show("Thank you for visiting.");
                            txtVehicleNo.Clear();
                        }
                    }
                    else
                    {
                        MessageBox.Show("This vehicle does not exist, Please provide the valid vehicle number.");
                    }
                }
                else
                {
                    MessageBox.Show("Please provide the vehicle number.");
                }
            }
        }
        public async Task <ActionResult <HttpResponseMessage> > BuyPlace([FromRoute] Guid id, [FromBody] ParkingHistory parkingHistory)
        {
            parkingHistory.StartTime = DateTime.Now;
            parkingHistory.EndTime   = DateTime.Now.AddHours(parkingHistory.HowLong);
            parkingHistory.ParkingId = id;
            parkingHistory.UserId    = new Guid(User.FindFirst(ClaimTypes.NameIdentifier)?.Value);
            var parking = await _context.Parkings.Where(p => p.Id == id).FirstOrDefaultAsync();

            parking.NumberOfFreeCarsPlaces--;
            _context.Parkings.Update(parking);
            _context.ParkingHistories.Add(parkingHistory);
            await _context.SaveChangesAsync();

            return(Ok("Wykupiono miejsce parkingowe"));
        }