/// <summary> /// The create or update appointment form. /// </summary> /// <param name="apptForm"> /// The appt form. /// </param> public void CreateOrUpdateAppointmentForm(IAppointmentForm apptForm) { if (apptForm.Id > 0) { var current = _context.AppointmentForms.FirstOrDefault(af => af.Id == apptForm.Id); current = apptForm as AppointmentForm; } else { _context.AppointmentForms.Add((AppointmentForm)apptForm); } }
/// <summary> /// The save request data. /// </summary> /// <param name="frm"> /// The frm. /// </param> /// <returns> /// The <see cref="ActionResult"/>. /// </returns> public ActionResult SaveRequestData(FormCollection frm) { IAppointmentForm apptForm = CreateAppointmentForm(frm, ApptFormStatusType.NeedsApproval); using (var adminUow = DependencyResolver.Current.GetService <IAdminUnitOfWork>()) { adminUow.AppointmentRepository.CreateOrUpdateAppointmentForm(apptForm); var appointment = adminUow.AppointmentRepository.GetById(apptForm.AppointmentId); appointment.Status = (int)AppointmentStatusType.InProgress; adminUow.AppointmentRepository.Update(appointment); adminUow.Commit(); } UnlockSubmittedForm(apptForm); return(RedirectToAction("FormSubmission", new { @fid = frm["FormId"], @vid = frm["VisitId"] })); }
private void FillForm(FormViewModel fvm, IAppointmentForm apptForm) { //fvm.Questions.OrderBy(q => q.SortOrder); fvm.ApptFormStatus = (ApptFormStatusType)apptForm.FormStatusTypeId; foreach (var a in apptForm.FormAnswers) { var question = fvm.QuestionsViewModel.FirstOrDefault(q => q.Id == a.QuestionId); if (question != null) { var answer = question.AnswersViewModel.FirstOrDefault(an => an.Id == a.AnswerId); if (answer != null) { answer.Selected = true; answer.FormAnswerId = a.Id; answer.SelectedId = a.AnswerId; } else { var ans = question.AnswersViewModel.FirstOrDefault(); if (ans != null && ans.CssInputType == "checkbox" && !string.IsNullOrWhiteSpace(ans.AnswerText)) { var answersList = ans.AnswerText.Split(new[] { ',' }); foreach (var ch in answersList) { int chId; int.TryParse(ch, out chId); var box = question.AnswersViewModel.FirstOrDefault(item => item.Id == chId); if (box == null) { continue; } box.Selected = true; box.FormAnswerId = chId; } } else { if (ans != null) { ans.AnswerText = a.FreeTextAnswer; ans.FormAnswerId = a.Id; } } } } } }
/// <summary> /// The unlock submitted form. /// </summary> /// <param name="apptForm"> /// The appt form. /// </param> private void UnlockSubmittedForm(IAppointmentForm apptForm) { using (var adminUow = DependencyResolver.Current.GetService <IAdminUnitOfWork>()) { int subjectId = adminUow.AppointmentRepository.GetById(apptForm.AppointmentId).SubjectId; adminUow.FormRepository.UnlockFormFromReadOnly( new FormInProcess { AppUserId = CurrentAppUser == null ? 0 : CurrentAppUser.Id, FormId = apptForm.FormId, IsLocked = false, MaxLockTimeMin = 0, OpenendOn = DateTime.UtcNow, SubjectId = subjectId }); } }
/// <summary> /// The create appointment form. /// </summary> /// <param name="frm"> /// The frm. /// </param> /// <param name="status"> /// The status. /// </param> /// <returns> /// The <see cref="IAppointmentForm"/>. /// </returns> private IAppointmentForm CreateAppointmentForm(FormCollection frm, ApptFormStatusType status) { IAppointmentForm apptForm = null; using (var adminUow = DependencyResolver.Current.GetService <IAdminUnitOfWork>()) { apptForm = GetAppointmentForm(frm, status, adminUow); // TODO: Not sure but will clear all answers for now.. apptForm.FormAnswers.Clear(); var qKeys = frm.AllKeys.Where(k => k.StartsWith("q_")); foreach (var k in qKeys) { var qId = Convert.ToInt32(k.Split(new[] { "q_" }, StringSplitOptions.RemoveEmptyEntries)[0]); var answer = frm[k]; var question = adminUow.FormRepository.GetQuestion(qId); if (question.CssType.CssClassName.Equals("checkbox")) { var chOptions = answer.Split(new[] { ',' }); foreach (var ch in chOptions) { var frmAnswer = GetFormAnswerAnswerId(ch, question.CssType.CssClassName); frmAnswer.QuestionId = qId; apptForm.FormAnswers.Add(frmAnswer); } } else { var frmAnswer = GetFormAnswerAnswerId(answer, question.CssType.CssClassName); frmAnswer.QuestionId = qId; apptForm.FormAnswers.Add(frmAnswer); } } adminUow.Commit(); } return(apptForm); }
public void CreateOrUpdateAppointmentForm(IAppointmentForm apptForm) { throw new NotImplementedException(); }