コード例 #1
0
        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 }));
        }
コード例 #2
0
        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" }));
        }
コード例 #3
0
        /// <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;
            }
        }
コード例 #4
0
        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();
            }
        }
コード例 #5
0
        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();
            }
        }
コード例 #6
0
 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;
     }
 }
コード例 #7
0
 public BookAppointmentResponse BookAppointment(BookAppointmentRequest jsonRequest)
 {
     return(new AppointmentServiceManager().BookAppointment(jsonRequest));
 }