public void Setup() { _talksApi = A.Fake<ITalksApi>(); _expectedDateTime = DateTime.Now; _easyAccessKey = "talk_key"; _viewModel = CreateFeedbackViewModelStub(_easyAccessKey); _expectedResponse = CreateFeedbackViewModelResponse(_viewModel); }
public IActionResult Index(FeedbackFormViewModel feedbackFormAnswers) { var feedbackSubmissionResponse = PostFeedbackAnswers(feedbackFormAnswers); if (feedbackSubmissionResponse.StatusCode != System.Net.HttpStatusCode.Created) { feedbackFormAnswers.ErrorMessage = feedbackSubmissionResponse.ReasonPhrase; return RedirectToAction("Index", "Feedback", feedbackFormAnswers); } return View("_feedbackSavedSuccessfully"); // Can't just redirect, need to forward an error somehow!! }
private FeedbackFormViewModel MapToViewModel(FeedbackForm form) { if (form.Questionnaire == null || !form.Questionnaire.Any()) return null; var viewModel = new FeedbackFormViewModel(); viewModel.TalkId = form.TalkId; viewModel.TalkName = form.TalkName; viewModel.SpeakerName = form.SpeakerName; viewModel.Questionnaire = form.Questionnaire.Select(x => new QuestionViewModel { QuestionId = x.QuestionId, IsRequired = x.IsRequired, QuestionText = x.QuestionText, AnswerType = x.AnswerType, Answer = x.Answer }).ToList(); return viewModel; }
private HttpResponseMessage PostFeedbackAnswers(FeedbackFormViewModel feedbackFormAnswers) { var easyAccessKey = feedbackFormAnswers.EasyAccessKey; var feedbackResponse = new FeedbackResponse { TalkId = feedbackFormAnswers.TalkId, ReviewerId = "", Questionnaire = feedbackFormAnswers.Questionnaire.Select(x => new Question { QuestionId = x.QuestionId, IsRequired = x.IsRequired, QuestionText = x.QuestionText, AnswerType = x.AnswerType, Answer = x.Answer }).ToList(), SubmissionTime = DateTime.Now }; var feedbackSubmissionResponse = _talksApi.PostFeedbackForm(easyAccessKey, feedbackResponse); return feedbackSubmissionResponse; }
private static FeedbackFormViewModel CreateFeedbackViewModelStub(string _easyAccessKey) { var temp = TalksApiStubResponse.GetTalkByEasyAccessKey("12345"); var viewModel = new FeedbackFormViewModel(); viewModel.TalkId = temp.TalkId; viewModel.TalkName = temp.TalkName; viewModel.SpeakerName = temp.SpeakerName; viewModel.EasyAccessKey = _easyAccessKey; viewModel.Questionnaire = temp.Questionnaire.Select(x => new QuestionViewModel { QuestionId = x.QuestionId, IsRequired = x.IsRequired, QuestionText = x.QuestionText, AnswerType = x.AnswerType, Answer = x.Answer }).ToList(); return viewModel; }
private static IList<ValidationResult> CheckForValidationErrors(FeedbackController controller, FeedbackFormViewModel model) { var validationErrors = ViewModelValidation.Validate(model); if (validationErrors.Count > 0) { controller.ViewData.ModelState.AddModelError(nameof(model.TalkId), validationErrors[0].ErrorMessage); } return validationErrors; }
private FeedbackResponse CreateFeedbackViewModelResponse(FeedbackFormViewModel model) { var response = new FeedbackResponse { TalkId = model.TalkId, ReviewerId = "", Questionnaire = model.Questionnaire.Select(x => new Question { QuestionId = x.QuestionId, IsRequired = x.IsRequired, QuestionText = x.QuestionText, AnswerType = x.AnswerType, Answer = x.Answer }).ToList(), SubmissionTime = _expectedDateTime }; return response; }