public ActionResult BookUpdate(BookAppointmentViewModel viewModel) { if (viewModel.Updating) { var updateBookingRequest = new UpdateAppointmentRequest { Id = viewModel.AppointmentId.Value, Date = viewModel.Date, StartTime = viewModel.StartTime, EndTime = viewModel.EndTime, LeadName = viewModel.LeadName, Address = viewModel.Address }; var validationResult = _appointmentService.ValidateUpdate(updateBookingRequest); if (!validationResult.IsValid) { foreach (var error in validationResult.Errors) { ModelState.AddModelError(error.Field ?? "", error.Text); } return(View("BookUpdate", viewModel)); } _appointmentService.Update(updateBookingRequest); } else { Guid id = Guid.NewGuid(); var makeBookingRequest = new BookAppointmentRequest { Id = id, ConsultantId = viewModel.ConsultantId.Value, Date = viewModel.Date, StartTime = viewModel.StartTime, EndTime = viewModel.EndTime, LeadName = viewModel.LeadName, Address = viewModel.Address }; var validationResult = _appointmentService.ValidateBook(makeBookingRequest); if (!validationResult.IsValid) { foreach (var error in validationResult.Errors) { ModelState.AddModelError(error.Field ?? "", error.Text); } return(View("BookUpdate", viewModel)); } _appointmentService.Book(makeBookingRequest); } return(RedirectToAction("Index", "Consultant", new { consultantId = viewModel.ConsultantId })); }
public IActionResult BookAppointment(int appointmentId, BookAppointmentRequest request) { var appointment = _context.Appointments.FirstOrDefault(appointment => appointment.AppointmentId == appointmentId); if (appointment.UserId != null) { return(BadRequest(new { message = "This appointment is already booked" })); } appointment.UserId = request.UserId; _context.SaveChanges(); return(Ok(new { message = "Appointment booked succesfully" })); }
/// <summary> /// /// </summary> /// <param name="requestFromUI"></param> /// <returns></returns> public BookAppointmentResponse BookAppointment(BookAppointmentRequest requestFromUI) { try { if (requestFromUI == null || requestFromUI.AppointmentCriteria == null) { throw new FaultException("Request can not be empty"); } //service.ClientCredentials.UserName.UserName = System.Configuration.ConfigurationManager.AppSettings["UserName"]; //service.ClientCredentials.UserName.Password = System.Configuration.ConfigurationManager.AppSettings["Password"]; appointmentCriteria reqCriteria = new appointmentCriteria() { activityExternalId = requestFromUI.AppointmentCriteria.ActivityExternalId, appointmentDurationMin = requestFromUI.AppointmentCriteria.AppointmentDurationMin, campaignExternalId = requestFromUI.AppointmentCriteria.CampaignExternalId, campaignTimezone = requestFromUI.AppointmentCriteria.CampaignTimezone, clientExternalId = requestFromUI.AppointmentCriteria.ClientExternalId, clientTimezone = requestFromUI.AppointmentCriteria.ClientTimezone, numberOfAttendees = requestFromUI.AppointmentCriteria.NumberOfAttendees, programExternalId = requestFromUI.AppointmentCriteria.ProgramExternalId, resourceExternalId = requestFromUI.AppointmentCriteria.ResourceExternalId, locationExternalId = requestFromUI.AppointmentCriteria.LocationExternalId, resourcepoolExternalId = requestFromUI.AppointmentCriteria.ResourcepoolExternalId, setupDurationMin = requestFromUI.AppointmentCriteria.SetupDurationMin, }; var serviceResponse = service.bookAppointment(reqCriteria, DateTime.Now, requestFromUI.ExternalClientId); return(new BookAppointmentResponse() { TTStatus = new Entities.TTStatus() { Cause = serviceResponse.cause, Result = serviceResponse.result, Status = serviceResponse.status } }); } catch (FaultException exception) { throw exception; } }
public ValidationMessageCollection ValidateBook(BookAppointmentRequest request) { var session = _sessionFactory.OpenSession(); CurrentSessionContext.Bind(session); try { return(Appointment.ValidateBook( request.ConsultantId, request.Date, request.StartTime, request.EndTime, request.LeadName, request.Address)); } finally { CurrentSessionContext.Unbind(_sessionFactory); session.Dispose(); } }
public void Book(BookAppointmentRequest request) { var session = _sessionFactory.OpenSession(); CurrentSessionContext.Bind(session); try { using (var transactionScope = new TransactionScope()) { DomainEvents.Register <AppointmentBookedEvent>(AppointmentBooked); Appointment.Book(request.ConsultantId, request.Id, request.Date, request.StartTime, request.EndTime, request.LeadName, request.Address); session.Flush(); transactionScope.Complete(); } } finally { CurrentSessionContext.Unbind(_sessionFactory); DomainEvents.ClearCallbacks(); session.Dispose(); } }
public IHttpActionResult BookOrChangeAppointment([FromBody] BookAppointmentRequest request) { try { Log.Error("call BookOrChangeAppointment API"); using (AppointmentBookingBC appointmentBC = new AppointmentBookingBC()) { BookAppointmentResponse response = new BookAppointmentResponse(); if (request.AppointmentDetails.IsAppointmentAvailable) { request.AppointmentDetails.App_Change_Count = request.AppointmentDetails.App_Change_Count + 1; } if (request.AppointmentDetails.App_Change_Count <= 3) { appointmentBC.BookOrChangeAppointment(request.AppointmentDetails); //if (appModel != null) //{ response.ResponseCode = 0; response.ResponseMessage = "Success"; //response.AppointmentDetails = appModel; //} } else { appointmentBC.BookOrChangeAppointment(request.AppointmentDetails); response.ResponseCode = 1; response.ResponseMessage = "You have exceeded the number of times allowed for time slot change. Please contact your case officer."; } return(Ok(response)); } } catch (Exception ex) { throw ex; } }
public BookAppointmentResponse BookAppointment(BookAppointmentRequest jsonRequest) { return(new AppointmentServiceManager().BookAppointment(jsonRequest)); }