コード例 #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 }));
        }