/// <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);
            }
        }
Example #2
0
        /// <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"] }));
        }
Example #3
0
        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;
                            }
                        }
                    }
                }
            }
        }
Example #4
0
        /// <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
                });
            }
        }
Example #5
0
        /// <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();
 }