Exemple #1
0
        public async Task <IActionResult> PutSlotReservation(int id, SlotReservation slotReservation)
        {
            if (id != slotReservation.SlotReservationId)
            {
                return(BadRequest());
            }

            _context.Entry(slotReservation).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SlotReservationExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <IActionResult> Post([FromBody] SlotReservation slotReservation)
        {
            try
            {
                if (slotReservation == null)
                {
                    throw new Exception("Invalid parameters");
                }

                //mapping
                TakeSlot takeSlot = new TakeSlot()
                {
                    Comments   = slotReservation.Comments,
                    Patient    = slotReservation.Patient,
                    FacilityId = slotReservation.FacilityId,
                    Start      = DateTime.ParseExact(slotReservation.Start, "dd/MM/yyyy HH:mm:ss", null),
                    End        = DateTime.ParseExact(slotReservation.End, "dd/MM/yyyy HH:mm:ss", null)
                };

                await _slotService.PerformSlotReservation(takeSlot);

                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(new ApiError(400, e.Message)));
            }
        }
Exemple #3
0
 public void UpdateSlotReservation(SlotReservation slotReservation)
 {
     using (var connection = _databaseService.Connect())
     {
         var rsv = connection.Reservations.SingleOrDefault(w => w.ReservationId == slotReservation.Reservation.ReservationId);
         if (rsv == null)
         {
             throw new InvalidOperationException();
         }
         rsv.SlotReservation.Merge(slotReservation);
         connection.DetectChanges();
         connection.SaveChanges();
     }
 }
        public async Task <ActionResult <SlotReservation> > PostSlotReservation(ReservationViewModel model)
        {
            var slot      = _context.slots.FirstOrDefault(p => p.SlotId == model.SlotId);
            var slotmodel = new SlotReservation()
            {
                slot               = slot,
                ReservationTime    = DateTime.Now,
                ReservationEndTime = model.ReservationEndTime,
                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());
            //return CreatedAtAction("GetSlotReservation", new { id = slotReservation.SlotReservationId }, slotReservation);
        }
        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());
        }
Exemple #6
0
 public void DeleteSlotReservation(SlotReservation slotReservation)
 {
     slotReservation.Reservation.IsEnabled = false;
     UpdateSlotReservation(slotReservation);
 }
Exemple #7
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());
        }