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))); } }
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()); }
public void DeleteSlotReservation(SlotReservation slotReservation) { slotReservation.Reservation.IsEnabled = false; UpdateSlotReservation(slotReservation); }
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()); }