public IActionResult Get(int id)
        {
            SlotReservationViewModel        model     = new SlotReservationViewModel();
            List <SlotReservationViewModel> listmodel = new List <SlotReservationViewModel>();

            if (id == null)
            {
                return(NotFound());
            }
            var reservationList = _context.slotReservations
                                  .Include(p => p.slot)
                                  .Where(p => p.slot.SlotId == id);

            foreach (var reservation in reservationList)
            {
                model.SlotId             = reservation.slot.SlotId;
                model.CustomerName       = reservation.CustomerName;
                model.CustomerEmail      = reservation.CustomerEmail;
                model.CustomerPhoneNo    = reservation.CustomerPhoneNo;
                model.CarNo              = reservation.CarNo;
                model.SlotNo             = reservation.slot.No;
                model.ReservationTime    = reservation.ReservationTime;
                model.ReservationEndTime = reservation.ReservationEndTime;
                model.ReservationId      = reservation.SlotReservationId;

                listmodel.Add(model);
            }

            return(new OkObjectResult(listmodel));
        }
        public async Task <IActionResult> Post(SlotReservationViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var slot      = _context.slots.FirstOrDefault(p => p.SlotId == model.SlotId);
            var slotmodel = new SlotReservation()
            {
                slot            = slot,
                ReservationTime = DateTime.Now,
                CustomerEmail   = model.CustomerEmail,
                CustomerName    = model.CustomerName,
                CustomerPhoneNo = model.CustomerPhoneNo,
                CarNo           = model.CarNo
            };

            slot.Reserved = true;
            _context.Update(slot);
            _context.Add(slotmodel);
            await _context.SaveChangesAsync();

            return(Ok());
        }
Пример #3
0
        public async Task <ActionResult <SlotReservation> > PostSlotReservation([FromForm] SlotReservationViewModel model)
        {
            if (model == null)
            {
                return(NotFound());
            }
            var Searchslot      = _context.slots.FirstOrDefault(p => p.SlotId == model.Id);
            var Slotreservation = new SlotReservation()
            {
                CustomerName    = model.Name,
                CustomerPhoneNo = model.Phone,
                CarNo           = model.No,
                CarType         = model.Type,
                slot            = Searchslot,
                ReservationTime = DateTime.Now,
                CustomerEmail   = model.Email,
                City            = model.City,
                ZIpCode         = model.ZipCode,
            };


            var result = _context.Add(Slotreservation);

            if (result != null)
            {
                _context.SaveChanges();

                Searchslot.Reserved = true;

                _context.Update(Searchslot);

                if (_context.SaveChanges() > 0)
                {
                    var res = _context.slotReservations.
                              Include(p => p.slot)
                              .FirstOrDefault(p => p.CustomerEmail == model.Email &&
                                              p.CustomerPhoneNo == model.Phone);

                    var payement = new Payment()
                    {
                        PaymentMethod   = "Debit card",
                        Amount          = res.HoursInNumner * res.slot.RsPerHours,
                        slotReservation = res,
                        dateTime        = DateTime.Now
                    };

                    _context.Add(payement);

                    if (_context.SaveChanges() > 0)
                    {
                        res.SuccessfulPayment = true;

                        _context.Update(res);
                        _context.SaveChanges();
                    }


                    await _emailSender.SendEmailAsync(model.Email, $"(From Parkit.Com)",
                                                      $"[{model.Name}] Your Reservation Completed Successfuly for Slot::  {Searchslot.No}  ...For {model.NoOfHours} hourse ... Now Proccessed further with Payment");

                    await _smsSender.SendSmsAsync(model.Phone, $"(From Parkit.Com)" +
                                                  $"[{model.Name}] Your Reservation Completed Successfuly for Slot::  {Searchslot.No}  ...For {model.NoOfHours} hourse ... Now Proccessed further with Payment");
                }
            }



            return(Ok());
        }