public bool PostTransactionLog(ParkingSlotTransaction log)
        {
            bool result = false;
            using (SmartParkingEntities context = new SmartParkingEntities())
            {
                ParkingSlotTransaction transaction = new ParkingSlotTransaction()
                {
                    SlotID = log.SlotID,
                    UserID = log.UserID,
                    ParkingInTime = DateTime.Now,
                    VehicleNumber = log.VehicleNumber
                };

                context.ParkingSlotTransactions.Add(transaction);
                context.SaveChanges();
                result = true;
            }
            return result;
        }
 public SlotTransactionModel ConvertDBToModelObject(ParkingSlotTransaction trans)
 {
     return new SlotTransactionModel()
     {
         SlotID = trans.SlotID,
         ParkingInTime = trans.ParkingInTime,
         ParkingOutTime = trans.ParkingOutTime,
         TransactionID = trans.TransactionID,
         UserID = trans.UserID,
         VehicleNumber = trans.VehicleNumber
     };
 }
        public string PostParkUnPark(int userId, int parkingId, string slotNo, bool isAcquired)
        {
            bool result = false;
            using (SmartParkingEntities context = new SmartParkingEntities())
            {
                SlotMaster slot = context.SlotMasters.Where(s => s.ParkingID == parkingId && s.SlotNumber == slotNo).SingleOrDefault();
                slot.IsAcquired = isAcquired;

                if (isAcquired)
                {
                    ParkingSlotTransaction transaction = new ParkingSlotTransaction()
                    {
                        SlotID = slot.SlotID,
                        UserID = userId,
                        ParkingInTime = DateTime.Now,
                        VehicleNumber = null
                    };
                    context.ParkingSlotTransactions.Add(transaction);
                }
                else
                {
                    var getSolt = context.SlotMasters.Where(s => s.SlotNumber == slotNo && s.ParkingID == parkingId).SingleOrDefault();
                    if (getSolt != null)
                    {
                        ParkingSlotTransaction transaction = context.ParkingSlotTransactions.OrderByDescending(t => t.ParkingInTime).Where(t => t.SlotID == getSolt.SlotID && t.UserID == userId).FirstOrDefault();
                        transaction.ParkingOutTime = DateTime.Now;
                    }
                }

                context.SaveChanges();
                result = true;
            }
            //return result;
            return userId.ToString() + " " + parkingId.ToString() + " " + slotNo + " " + isAcquired.ToString();
        }
        public string PostParkUnPark(int userId, int parkingId, string slotNo, int SlotStatus)
        {
            bool result = false;
            using (SmartParkingEntities context = new SmartParkingEntities())
            {
                SlotMaster slot = context.SlotMasters.Where(s => s.ParkingID == parkingId && s.SlotNumber == slotNo).SingleOrDefault();
                if (SlotStatus == 2 || SlotStatus == 3)
                    slot.CurrentUserID = userId;
                else
                    slot.CurrentUserID = -1;
                if (slot.SlotStatus == 3 || SlotStatus == 3)
                {
                    if (SlotStatus == 3 && slot.SlotStatus == 1)
                        context.WalletTrans.Add(new WalletTran { UserID = userId, TransDt = DateTime.Now, CRDR = "DR", Amount = 20 });
                    if (SlotStatus == 1 && slot.SlotStatus == 3)
                        context.WalletTrans.Add(new WalletTran { UserID = userId, TransDt = DateTime.Now, CRDR = "CR", Amount = 20 });
                }
                slot.SlotStatus = SlotStatus;

                if (SlotStatus == 2 || SlotStatus == 3)
                {
                    ParkingSlotTransaction transaction = new ParkingSlotTransaction()
                    {
                        SlotID = slot.SlotID,
                        UserID = userId,
                        ParkingInTime = DateTime.Now,
                        VehicleNumber = null
                    };
                    context.ParkingSlotTransactions.Add(transaction);
                }
                else
                {
                    var getSolt = context.SlotMasters.Where(s => s.SlotNumber == slotNo && s.ParkingID == parkingId).SingleOrDefault();
                    if (getSolt != null)
                    {
                        ParkingSlotTransaction transaction = context.ParkingSlotTransactions.OrderByDescending(t => t.ParkingInTime).Where(t => t.SlotID == getSolt.SlotID && t.UserID == userId).FirstOrDefault();
                        transaction.ParkingOutTime = DateTime.Now;
                    }
                }

                context.SaveChanges();
                result = true;
            }
            //return result;
            return userId.ToString() + " " + parkingId.ToString() + " " + slotNo + " " + SlotStatus.ToString();
        }