public void UpdateSurveyResponse(SurveyInfoModel surveyInfoModel, string responseId, MvcDynamicForms.Form form, SurveyAnswerDTO surveyAnswerDTO, bool isSubmited, bool isSaved, int pageNumber, int orgId, int userId, string userName) { // 1 Get the record for the current survey response // 2 update the current survey response and save the response //// 1 Get the record for the current survey response SurveyAnswerResponse surveyAnswerResponse = new SurveyAnswerResponse(); surveyAnswerResponse.SurveyResponseList.Add(surveyAnswerDTO); ///2 Update the current survey response and save it _surveyAnswerRequest.Criteria.UserId = userId; _surveyAnswerRequest.Criteria.UserName = userName; SurveyHelper.UpdateSurveyResponse(surveyInfoModel, form, _surveyAnswerRequest, _surveyResponseBuilder, _dataEntryService, surveyAnswerResponse, responseId, surveyAnswerDTO, isSubmited, isSaved, pageNumber, orgId, userId); }
public MvcDynamicForms.Form GetSurveyFormData(string surveyId, int pageNumber, SurveyAnswerDTO surveyAnswerDTO) { SurveyInfoModel surveyInfoModel = GetSurveyInfoModel(surveyId); SurveyInfoDTO surveyInfoDTO = Epi.Web.MVC.Models.Mapper.ToSurveyInfoDTO(surveyInfoModel); MvcDynamicForms.Form form = Epi.Web.MVC.Utility.FormProvider.GetForm(surveyInfoDTO, 1, null); return(form); }
public ActionResult Index(string surveyId, SurveyAnswerModel surveyAnswerModel) { try { bool IsMobileDevice = this.Request.Browser.IsMobileDevice; if (IsMobileDevice == false) { IsMobileDevice = Epi.Web.MVC.Utility.SurveyHelper.IsMobileDevice(this.Request.UserAgent.ToString()); } FormsAuthentication.SetAuthCookie("BeginSurvey", false); Guid responseId = Guid.NewGuid(); Epi.Web.Enter.Common.DTO.SurveyAnswerDTO SurveyAnswer = _isurveyFacade.CreateSurveyAnswer(surveyId, responseId.ToString(), 0); SurveyInfoModel surveyInfoModel = GetSurveyInfo(SurveyAnswer.SurveyId); XDocument xdoc = XDocument.Parse(surveyInfoModel.XML); MvcDynamicForms.Form form = _isurveyFacade.GetSurveyFormData(SurveyAnswer.SurveyId, 1, SurveyAnswer, IsMobileDevice); var _FieldsTypeIDs = from _FieldTypeID in xdoc.Descendants("Field") select _FieldTypeID; foreach (var _FieldTypeID in _FieldsTypeIDs) { bool isRequired; string attributeValue = _FieldTypeID.Attribute("IsRequired").Value; if (bool.TryParse(attributeValue, out isRequired)) { if (isRequired) { if (!form.RequiredFieldsList.Contains(_FieldTypeID.Attribute("Name").Value)) { if (form.RequiredFieldsList != "") { form.RequiredFieldsList = form.RequiredFieldsList + "," + _FieldTypeID.Attribute("Name").Value.ToLower(); } else { form.RequiredFieldsList = _FieldTypeID.Attribute("Name").Value.ToLower(); } } } } } _isurveyFacade.UpdateSurveyResponse(surveyInfoModel, SurveyAnswer.ResponseId, form, SurveyAnswer, false, false, 1, 0); return(RedirectToRoute(new { Controller = "Survey", Action = "Index", responseId = responseId, PageNumber = 1 })); } catch (Exception ex) { Epi.Web.Utility.ExceptionMessage.SendLogMessage(ex, this.HttpContext); return(View(Epi.Web.MVC.Constants.Constant.EXCEPTION_PAGE)); } }
public ActionResult Index(string surveyId, SurveyAnswerModel surveyAnswerModel) { try { bool isMobileDevice = this.Request.Browser.IsMobileDevice; if (isMobileDevice == false) { isMobileDevice = Epi.Cloud.MVC.Utility.SurveyHelper.IsMobileDevice(this.Request.UserAgent.ToString()); } FormsAuthentication.SetAuthCookie("BeginSurvey", false); Guid responseId = Guid.NewGuid(); var responseContext = InitializeResponseContext(formId: surveyId, responseId: responseId.ToString()); SurveyAnswerDTO surveyAnswer = _isurveyFacade.CreateSurveyAnswer(responseContext); SurveyInfoModel surveyInfoModel = GetSurveyInfo(surveyId); MvcDynamicForms.Form form = _isurveyFacade.GetSurveyFormData(surveyId, 1, surveyAnswer, isMobileDevice); List <string> requiredFields = null; foreach (var field in surveyInfoModel.GetFieldDigests(surveyId)) { bool isRequired = field.IsRequired; if (isRequired) { // if this is the first new required field then split the existing required CSV into a true list. requiredFields = requiredFields ?? new List <string>(form.RequiredFieldsList.Split(',')); if (!requiredFields.Contains(field.FieldName)) { requiredFields.Add(field.FieldName.ToLower()); } } } // if we processed at least 1 reqired field then join the required field list into a CSV list if (requiredFields != null) { form.RequiredFieldsList = string.Join(",", requiredFields); } _isurveyFacade.UpdateSurveyResponse(surveyInfoModel, surveyAnswer.ResponseId, form, surveyAnswer, false, false, 1, responseContext.UserOrgId, responseContext.UserId, null); return(RedirectToRoute(new { Controller = "Survey", Action = "Index", responseId = responseId, PageNumber = 1 })); } catch (Exception ex) { Epi.Web.Utility.ExceptionMessage.SendLogMessage(ex, this.HttpContext); return(View(ViewActions.Exception)); } }
public void Add(MvcDynamicForms.Form pForm) { ResponseDetailList.Clear(); foreach (var field in pForm.InputFields) { if (!field.IsPlaceHolder) { if (this.ResponseDetailList.ContainsKey(field.Title)) { if (field.FieldTypeId == 11) { if (field.Response == "Yes") { field.Response = "1"; } else if (field.Response == "No") { field.Response = "0"; } else { this.ResponseDetailList[field.Title] = field.Response; } } else { this.ResponseDetailList[field.Title] = field.Response; } } else { if (field.FieldTypeId == 11) { if (field.Response == "Yes") { this.ResponseDetailList.Add(field.Title, "1"); } else if (field.Response == "No") { this.ResponseDetailList.Add(field.Title, "0"); } else { this.ResponseDetailList.Add(field.Title, field.Response); } } else { this.ResponseDetailList.Add(field.Title, field.Response); } } } } }
public void Add(MvcDynamicForms.Form pForm) { _responseQA.Clear(); foreach (var field in pForm.InputFields) { if (!field.IsPlaceHolder) { _responseQA[field.Title] = field.Response; } } }
public static List <KeyValuePair <string, string> > GetHiddenFieldsList(MvcDynamicForms.Form pForm) { List <KeyValuePair <string, String> > FieldsList = new List <KeyValuePair <string, string> >(); foreach (var field in pForm.InputFields) { if (field.IsPlaceHolder) { FieldsList.Add(new KeyValuePair <string, string>(field.Title, field.Response)); } } return(FieldsList); }
public static MvcDynamicForms.Form UpdateControlsValues(MvcDynamicForms.Form form, string Name, string Value) { foreach (var field in form.InputFields) { string fieldName = field.Title; if (Name.ToLower() == fieldName.ToLower()) { field.Response = Value.ToString(); } } return(form); }
/// <summary> /// get the survey form data /// </summary> /// <param name="surveyId"></param> /// <param name="responseId"></param> /// <param name="pageNumber"></param> /// <param name="surveyAnswerDTO"></param> /// <returns></returns> public MvcDynamicForms.Form GetSurveyFormData(string surveyId, int pageNumber, Epi.Web.Common.DTO.SurveyAnswerDTO surveyAnswerDTO, bool isMobileDevice = false, string callerThereby = "", bool IsAndroid = false, bool GetSourceTables = true) { SourceTablesResponse Response = new SourceTablesResponse(); SourceTablesRequest Request = new SourceTablesRequest(); if (GetSourceTables) { Request.SurveyId = surveyId; Response = _iSurveyInfoRepository.GetSourceTables(Request);//Pain Point } Epi.Web.Common.DTO.SurveyInfoDTO surveyInfoDTO = SurveyHelper.GetSurveyInfoDTO(_surveyInfoRequest, _iSurveyInfoRepository, surveyId); MvcDynamicForms.Form form = null; form = Epi.Web.MVC.Utility.FormProvider.GetForm(surveyInfoDTO, pageNumber, surveyAnswerDTO, isMobileDevice, IsAndroid, Response.List); return(form); }
/// <summary> /// This function will loop through the form controls and checks if any of the controls are found in the context detail list. /// If any their values get updated from the context list. /// </summary> /// <param name="form"></param> /// <param name="ContextDetailList"></param> /// <returns>Returns a Form object</returns> public static MvcDynamicForms.Form UpdateControlsValuesFromContext(MvcDynamicForms.Form form, Dictionary <string, string> ContextDetailList) { Dictionary <string, string> formControlList = new Dictionary <string, string>(); foreach (var field in form.InputFields) { string fieldName = field.Title; if (ContextDetailList.ContainsKey(fieldName)) { field.Response = ContextDetailList[fieldName].ToString(); } } return(form); }
public ActionResult Respond(MvcDynamicForms.Form form) { var formInfo = (FormInfoSection)System.Configuration.ConfigurationManager.GetSection("formInfoGroup/formInfo"); var formUid = new Guid(Request["FormUid"]); if (form.Validate()) { var responseUid = Guid.NewGuid(); _mvcResponses.AddToFormResponses(new FormResponse { Uid = responseUid, FormUid = formUid, Timestamp = DateTime.Now }); foreach (var inputfield in form.InputFields) { string response; var fieldType = inputfield.GetType().ToString(); switch (fieldType) { case "MvcDynamicForms.Fields.FileUpload": response = inputfield.Response.Split('\\')[inputfield.Response.Split('\\').GetUpperBound(0)]; break; default: response = inputfield.Response; if (response.Length > formInfo.MaxLength.Value) { response = response.Substring(0, formInfo.MaxLength.Value); } break; } var key = new Guid(inputfield.Key); if (fieldType != "MvcDynamicForms.Fields.Literal" && !string.IsNullOrEmpty(response)) { _mvcResponses.AddToFormResponseItems(new FormResponseItem { Uid = Guid.NewGuid(), FormResponseUid = responseUid, FormItemUid = key, ResponseStr = response, Timestamp = DateTime.Now }); } } _mvcResponses.SaveChanges(); return(null); } ViewData["FormUid"] = formUid.ToString(); ViewData["FormName"] = _mvcForms.Forms.FirstOrDefault(f => f.Uid == formUid).FormName; return(View(form)); }
public void Then_Open_The_Survey() { //SetUp Epi.Web.MVC.Facade.ISurveyFacade iSurveyFacade; Epi.Web.Common.Message.SurveyInfoRequest surveyInfoRequest; //Arrange surveyInfoRequest = new Epi.Web.Common.Message.SurveyInfoRequest(); surveyInfoRequest.Criteria.SurveyIdList = "1"; iSurveyFacade = new TestSurveyFacade(surveyInfoRequest); var controller = new Epi.Web.MVC.Controllers.SurveyController(iSurveyFacade); ViewResult c = controller.Notify("1", "page") as ViewResult; //MvcDynamicForms.Form f = c.Model as MvcDynamicForms.Form; MvcDynamicForms.Form f = iSurveyFacade.GetSurveyFormData("1", 1, null); //Assert.AreEqual(typeof(MvcDynamicForms.Form), c.Model);//test to make sure it is returning field prefix //Does it render all the controls? //Assert Assert.AreEqual(7, f.Fields.Count); //test to make sure it is returning correct number of items // Does it render the text box? Assert.AreEqual("MvcDynamicForms.Fields.TextBox", f.Fields[0].GetType().ToString()); //end item in the forms collection is a textbox }
public ActionResult Index(string surveyId, SurveyAnswerModel surveyAnswerModel) { try { bool isMobileDevice = this.Request.Browser.IsMobileDevice; if (isMobileDevice == false) { isMobileDevice = Epi.Web.MVC.Utility.SurveyHelper.IsMobileDevice(this.Request.UserAgent.ToString()); } if (!string.IsNullOrEmpty(this.Request.Form["is_print_action"]) && this.Request.Form["is_print_action"].ToString().Equals("true", StringComparison.OrdinalIgnoreCase)) { string ResponseId = this.Request.Form["ResponseId"]; ActionResult actionResult = RedirectToAction("Index", "Print", new { responseId = ResponseId, FromFinal = true }); return(actionResult); } //FormsAuthentication.SignOut(); FormsAuthentication.SetAuthCookie("BeginSurvey", false); Guid responseId = Guid.NewGuid(); Epi.Web.Common.DTO.SurveyAnswerDTO SurveyAnswer = _isurveyFacade.CreateSurveyAnswer(surveyId, responseId.ToString()); // Pass Code Logic start Epi.Web.Common.Message.UserAuthenticationResponse AuthenticationResponse = _isurveyFacade.GetAuthenticationResponse(responseId.ToString()); string strPassCode = Epi.Web.MVC.Utility.SurveyHelper.GetPassCode(); if (string.IsNullOrEmpty(AuthenticationResponse.PassCode)) { _isurveyFacade.UpdatePassCode(responseId.ToString(), TempData["PassCode"].ToString()); } SurveyInfoModel surveyInfoModel = GetSurveyInfo(SurveyAnswer.SurveyId); XDocument xdoc = XDocument.Parse(surveyInfoModel.XML); MvcDynamicForms.Form form = _isurveyFacade.GetSurveyFormData(SurveyAnswer.SurveyId, 1, SurveyAnswer, isMobileDevice); var _FieldsTypeIDs = from _FieldTypeID in xdoc.Descendants("Field") select _FieldTypeID; foreach (var _FieldTypeID in _FieldsTypeIDs) { bool isRequired; string attributeValue = _FieldTypeID.Attribute("IsRequired").Value; if (bool.TryParse(attributeValue, out isRequired)) { if (isRequired) { if (!form.RequiredFieldsList.Contains(_FieldTypeID.Attribute("Name").Value)) { if (form.RequiredFieldsList != "") { form.RequiredFieldsList = form.RequiredFieldsList + "," + _FieldTypeID.Attribute("Name").Value.ToLower(); } else { form.RequiredFieldsList = _FieldTypeID.Attribute("Name").Value.ToLower(); } } } } } SurveyAnswer.XML = CreateResponseDocument(xdoc, SurveyAnswer.XML); _isurveyFacade.UpdateSurveyResponse(surveyInfoModel, SurveyAnswer.ResponseId, form, SurveyAnswer, false, false, 1); return(RedirectToRoute(new { Controller = "Survey", Action = "Index", responseId = responseId, PageNumber = 1 })); } catch (Exception ex) { Epi.Web.Utility.ExceptionMessage.SendLogMessage(ex, this.HttpContext); return(View(Epi.Web.MVC.Constants.Constant.EXCEPTION_PAGE)); } }
public static List <KeyValuePair <string, string> > GetHiddenFieldsList(MvcDynamicForms.Form form) { List <KeyValuePair <string, String> > hiddenFields = form.InputFields.Where(field => field.IsPlaceHolder).Select(field => new KeyValuePair <string, string>(field.Title, field.Response)).ToList(); return(hiddenFields); }
public ActionResult Respond(string shortPath) { var thisForm = _mvcForms.Forms.FirstOrDefault(form => form.ShortPath == shortPath); if (thisForm != null) { ViewData["FormName"] = thisForm.FormName; //Only retrieve non-hidden fields var formFields = _mvcForms.FormFields.Where(formitems => formitems.FormUid == thisForm.Uid & formitems.IsHidden == 0).OrderBy( formitem => formitem.SortOrder); //CUSTOM, reference http://mvcdynamicforms.codeplex.com/ //Using the MVC Dynamic Form project, build a form comprised of fields tied to the form items used by this custom form //TODO: Consider switching to conditionally build views using partial views with the KnockOutJS library for custom validation if (formFields.Count() > 0) { var dynamicFormFields = new List<Field>(); foreach (var formField in formFields) { var field = formField; var thisFieldType = _mvcForms.FormFieldTypes.Single(fieldtype => fieldtype.Uid == field.FormFieldTypeUid); switch (thisFieldType.FieldType) { case ("Literal"): dynamicFormFields.Add(new TextBox() { Key = field.Uid.ToString(), Template = String.Format("<p>{0}</p>", field.LiteralText.KillHtml()), DisplayOrder = field.SortOrder }); break; case ("TextBox"): dynamicFormFields.Add(new TextBox() { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, RegularExpression = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.RegExDefault : string.Empty, RegexMessage = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.ErrorMsgRegEx.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }); break; case ("TextArea"): var newTextArea = new TextArea() { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, RegularExpression = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.RegExDefault : string.Empty, RegexMessage = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.ErrorMsgRegEx.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }; int number; if (Int32.TryParse(field.Rows.ToString(), out number)) newTextArea.InputHtmlAttributes.Add("rows", field.Rows.ToString()); if (Int32.TryParse(field.Cols.ToString(), out number)) newTextArea.InputHtmlAttributes.Add("cols", field.Cols.ToString()); dynamicFormFields.Add(newTextArea); break; case ("SelectList"): var newSelectList = new Select { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }; if (Convert.ToBoolean(field.IsMultipleSelect)) { newSelectList.MultipleSelection = true; newSelectList.Size = Convert.ToInt32(field.ListSize); newSelectList.CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","); } else { newSelectList.ShowEmptyOption = Convert.ToBoolean(field.IsEmptyOption); newSelectList.EmptyOption = (Convert.ToBoolean(field.IsEmptyOption)) ? field.EmptyOption : null; newSelectList.CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","); } dynamicFormFields.Add(newSelectList); break; case ("CheckBox"): var newCheckBox = new CheckBox { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }; dynamicFormFields.Add(newCheckBox); break; case ("CheckBoxList"): var newCheckBoxList = new CheckBoxList { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","), Orientation = (field.Orientation == "vertical") ? Orientation.Vertical : Orientation.Horizontal }; dynamicFormFields.Add(newCheckBoxList); break; case ("RadioList"): var newRadioList = new RadioList { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","), Orientation = (field.Orientation == "vertical") ? Orientation.Vertical : Orientation.Horizontal }; dynamicFormFields.Add(newRadioList); break; case ("FileUpload"): var newFileUpload = new FileUpload { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, InvalidExtensionError = field.ErrorExtensions, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, DisplayOrder = field.SortOrder, }; if (!string.IsNullOrEmpty(field.ValidExtensions)) newFileUpload.ValidExtensions = "." + field.ValidExtensions.Replace(Environment.NewLine, ",."); var user = Membership.GetUser(User.Identity.Name); UserKey = user.ProviderUserKey.ToString(); newFileUpload.Validated += FileValidated; newFileUpload.Posted += FilePosted; dynamicFormFields.Add(newFileUpload); break; } } var dynamicForm = new MvcDynamicForms.Form(); dynamicForm.AddFields(dynamicFormFields.ToArray()); dynamicForm.Serialize = true; ViewData["FormUid"] = thisForm.Uid; return View(dynamicForm); } } return RedirectToAction("Index", "Home"); }
public ActionResult Index(string surveyid, string AddNewFormId, string EditForm) { int UserId = SurveyHelper.GetDecryptUserId(Session["UserId"].ToString()); int CuurentOrgId = int.Parse(Session["SelectedOrgId"].ToString()); Guid ResponseID = Guid.NewGuid(); Session["FormValuesHasChanged"] = ""; TempData[Epi.Web.MVC.Constants.Constant.RESPONSE_ID] = Session["RootResponseId"] = ResponseID.ToString(); if (string.IsNullOrEmpty(EditForm) && Session["EditForm"] != null) { EditForm = Session["EditForm"].ToString(); } if (!string.IsNullOrEmpty(EditForm) && string.IsNullOrEmpty(AddNewFormId)) { Session["RootResponseId"] = EditForm.ToLower(); Session["IsEditMode"] = true; Epi.Web.Enter.Common.DTO.SurveyAnswerDTO surveyAnswerDTO = GetSurveyAnswer(EditForm, Session["RootFormId"].ToString()); Session["RequestedViewId"] = surveyAnswerDTO.ViewId; if (Session["RecoverLastRecordVersion"] != null) { surveyAnswerDTO.RecoverLastRecordVersion = bool.Parse(Session["RecoverLastRecordVersion"].ToString()); } string ChildRecordId = GetChildRecordId(surveyAnswerDTO); Session["RecoverLastRecordVersion"] = false; return(RedirectToAction(Epi.Web.MVC.Constants.Constant.INDEX, Epi.Web.MVC.Constants.Constant.SURVEY_CONTROLLER, new { responseid = ChildRecordId, PageNumber = 1, Edit = "Edit" })); } else { Session["IsEditMode"] = false; } bool IsMobileDevice = this.Request.Browser.IsMobileDevice; if (IsMobileDevice == false) { IsMobileDevice = Epi.Web.MVC.Utility.SurveyHelper.IsMobileDevice(this.Request.UserAgent.ToString()); } FormsAuthentication.SetAuthCookie("BeginSurvey", false); Session["RootFormId"] = AddNewFormId; //create the responseid Epi.Web.Enter.Common.DTO.SurveyAnswerDTO SurveyAnswer = _isurveyFacade.CreateSurveyAnswer(AddNewFormId, ResponseID.ToString(), UserId, false, "", false, CuurentOrgId); MvcDynamicForms.Form form = _isurveyFacade.GetSurveyFormData(SurveyAnswer.SurveyId, 1, SurveyAnswer, IsMobileDevice, null, null, false, false); TempData["Width"] = form.Width + 100; SurveyInfoModel surveyInfoModel = Mapper.ToFormInfoModel(form.SurveyInfo); // set the survey answer to be production or test SurveyAnswer.IsDraftMode = form.SurveyInfo.IsDraftMode; XDocument xdoc = XDocument.Parse(form.SurveyInfo.XML); ///////////////////////////// Execute - Record Before - start////////////////////// Dictionary <string, string> ContextDetailList = new Dictionary <string, string>(); EnterRule FunctionObject_B = (EnterRule)form.FormCheckCodeObj.GetCommand("level=record&event=before&identifier="); SurveyResponseXML SurveyResponseXML = new SurveyResponseXML(PageFields, RequiredList); if (FunctionObject_B != null && !FunctionObject_B.IsNull()) { try { SurveyAnswer.XML = SurveyResponseXML.CreateResponseDocument(xdoc, SurveyAnswer.XML); Session["RequiredList"] = SurveyResponseXML._RequiredList; //SurveyAnswer.XML = Epi.Web.MVC.Utility.SurveyHelper.CreateResponseDocument(xdoc, SurveyAnswer.XML, RequiredList); this.RequiredList = SurveyResponseXML._RequiredList; form.RequiredFieldsList = this.RequiredList; FunctionObject_B.Context.HiddenFieldList = form.HiddenFieldsList; FunctionObject_B.Context.HighlightedFieldList = form.HighlightedFieldsList; FunctionObject_B.Context.DisabledFieldList = form.DisabledFieldsList; FunctionObject_B.Context.RequiredFieldList = form.RequiredFieldsList; FunctionObject_B.Execute(); // field list form.HiddenFieldsList = FunctionObject_B.Context.HiddenFieldList; form.HighlightedFieldsList = FunctionObject_B.Context.HighlightedFieldList; form.DisabledFieldsList = FunctionObject_B.Context.DisabledFieldList; form.RequiredFieldsList = FunctionObject_B.Context.RequiredFieldList; ContextDetailList = Epi.Web.MVC.Utility.SurveyHelper.GetContextDetailList(FunctionObject_B); form = Epi.Web.MVC.Utility.SurveyHelper.UpdateControlsValuesFromContext(form, ContextDetailList); _isurveyFacade.UpdateSurveyResponse(surveyInfoModel, ResponseID.ToString(), form, SurveyAnswer, false, false, 0, SurveyHelper.GetDecryptUserId(Session["UserId"].ToString())); } catch (Exception ex) { // do nothing so that processing // can continue } } else { SurveyAnswer.XML = SurveyResponseXML.CreateResponseDocument(xdoc, SurveyAnswer.XML);//, RequiredList); this.RequiredList = SurveyResponseXML._RequiredList; Session["RequiredList"] = SurveyResponseXML._RequiredList; form.RequiredFieldsList = RequiredList; _isurveyFacade.UpdateSurveyResponse(surveyInfoModel, SurveyAnswer.ResponseId, form, SurveyAnswer, false, false, 0, SurveyHelper.GetDecryptUserId(Session["UserId"].ToString())); } return(RedirectToAction(Epi.Web.MVC.Constants.Constant.INDEX, Epi.Web.MVC.Constants.Constant.SURVEY_CONTROLLER, new { responseid = ResponseID, PageNumber = 1, surveyid = surveyInfoModel.SurveyId })); }
public static void UpdateSurveyResponse(SurveyInfoModel surveyInfoModel, MvcDynamicForms.Form form, SurveyAnswerRequest surveyAnswerRequest, SurveyResponseBuilder surveyResponseBuilder, IDataEntryService dataEntryService, SurveyAnswerResponse surveyAnswerResponse, string responseId, SurveyAnswerDTO surveyAnswerDTO, bool isSubmited, bool isSaved, int pageNumber, int orgId, int userId) { // 1 Get the record for the current survey response // 2 update the current survey response // 3 save the current survey response var savedResponseDetail = surveyAnswerDTO.ResponseDetail; if (!isSubmited) { // 2 a. update the current survey answer request surveyAnswerRequest.SurveyAnswerList = surveyAnswerResponse.SurveyResponseList; surveyResponseBuilder.Add(form); FormResponseDetail formResponseDetail = surveyResponseBuilder.UpdateResponseDetail(savedResponseDetail, form.CurrentPage, form.PageId); surveyAnswerRequest.SurveyAnswerList[0].ResponseDetail = formResponseDetail; // 2 b. save the current survey response surveyAnswerRequest.Action = RequestAction.Update; var currentPageNumber = form.CurrentPage; FormResponseDetail currentFormResponseDetail = surveyAnswerRequest.SurveyAnswerList[0].ResponseDetail; PageResponseDetail currentPageResponseDetail = currentFormResponseDetail.GetPageResponseDetailByPageNumber(currentPageNumber); var mergedResponseDetail = MergeResponseDetail(savedResponseDetail, currentPageResponseDetail); surveyAnswerRequest.SurveyAnswerList[0].ResponseDetail.PageIds = mergedResponseDetail.PageIds; // keep only the pages that have updates var updatedPageResponseDetailList = mergedResponseDetail.PageResponseDetailList.ToList(); surveyAnswerRequest.SurveyAnswerList[0].ResponseDetail.PageResponseDetailList.Clear(); surveyAnswerRequest.SurveyAnswerList[0].ResponseDetail.PageResponseDetailList.AddRange(updatedPageResponseDetailList); } var updatedFromResponseDetail = surveyAnswerRequest.SurveyAnswerList[0].ResponseDetail; if (updatedFromResponseDetail.UserId <= 0) { updatedFromResponseDetail.UserId = userId; } if (updatedFromResponseDetail.UserOrgId <= 0) { updatedFromResponseDetail.UserOrgId = orgId; } ////Update page number before saving response if (surveyAnswerRequest.SurveyAnswerList[0].CurrentPageNumber != 0) { updatedFromResponseDetail.LastPageVisited = pageNumber; } if (form.HiddenFieldsList != null) { updatedFromResponseDetail.HiddenFieldsList = form.HiddenFieldsList; } if (form.HighlightedFieldsList != null) { updatedFromResponseDetail.HighlightedFieldsList = form.HighlightedFieldsList; } if (form.DisabledFieldsList != null) { updatedFromResponseDetail.DisabledFieldsList = form.DisabledFieldsList; } if (form.RequiredFieldsList != null) { updatedFromResponseDetail.RequiredFieldsList = form.RequiredFieldsList; } // AssignList List <KeyValuePair <string, string> > fieldsList = GetHiddenFieldsList(form).Where(kvp => kvp.Value != null).ToList(); if (fieldsList.Count > 0) { var formId = form.SurveyInfo.SurveyId; var metadataAccessor = form.SurveyInfo as MetadataAccessor; var formDigest = metadataAccessor.GetFormDigest(formId); foreach (var fieldsListKvp in fieldsList) { var fieldName = fieldsListKvp.Key.ToLower(); var pageId = formDigest.FieldNameToPageId(fieldName); var pageResponseDetail = updatedFromResponseDetail.PageResponseDetailList.SingleOrDefault(p => p.PageId == pageId); if (pageResponseDetail == null) { var pageDigest = metadataAccessor.GetPageDigestByPageId(formId, pageId); pageResponseDetail = new PageResponseDetail { PageId = pageId, PageNumber = pageDigest.PageNumber }; updatedFromResponseDetail.AddPageResponseDetail(pageResponseDetail); } pageResponseDetail.ResponseQA[fieldName] = fieldsListKvp.Value; pageResponseDetail.HasBeenUpdated = true; } } if (isSaved) { surveyAnswerRequest.SurveyAnswerList[0].Status = RecordStatus.Saved; surveyAnswerRequest.SurveyAnswerList[0].ReasonForStatusChange = RecordStatusChangeReason.Update; } /////Update Survey Mode //////////////////// surveyAnswerRequest.SurveyAnswerList[0].IsDraftMode = surveyAnswerDTO.IsDraftMode; //surveyAnswerRequest.Criteria.UserId = UserId; ResponseContext responseContext = ((IResponseContext)updatedFromResponseDetail).CloneResponseContext(); if (responseContext.UserId == 0) { responseContext.UserId = userId; } if (responseContext.UserOrgId == 0) { responseContext.UserOrgId = orgId; } surveyAnswerRequest.ResponseContext = responseContext; dataEntryService.SetSurveyAnswer(surveyAnswerRequest); }
public ActionResult Index(Epi.Web.MVC.Models.SurveyInfoModel surveyModel) { try { bool IsMobileDevice = this.Request.Browser.IsMobileDevice; if (IsMobileDevice == false) { IsMobileDevice = Epi.Web.MVC.Utility.SurveyHelper.IsMobileDevice(this.Request.UserAgent.ToString()); } FormsAuthentication.SetAuthCookie("BeginSurvey", false); Session["RootResponseId"] = surveyModel.ResponseId; string ResponseID = surveyModel.ResponseId; //string.Empty; //object tempDataValue; //if (TempData.TryGetValue(Epi.Web.MVC.Constants.Constant.RESPONSE_ID, out tempDataValue)) //{ // ResponseID = (string)tempDataValue; //} //else //{ //} Epi.Web.Common.DTO.SurveyAnswerDTO SurveyAnswer = _isurveyFacade.CreateSurveyAnswer(surveyModel.SurveyId, ResponseID.ToString()); Epi.Web.Common.Message.UserAuthenticationResponse AuthenticationResponse = _isurveyFacade.GetAuthenticationResponse(ResponseID.ToString()); string strPassCode = Epi.Web.MVC.Utility.SurveyHelper.GetPassCode(); if (string.IsNullOrEmpty(AuthenticationResponse.PassCode)) { //_isurveyFacade.UpdatePassCode(ResponseID.ToString(), TempData["PassCode"].ToString()); _isurveyFacade.UpdatePassCode(ResponseID.ToString(), surveyModel.PassCode); } Epi.Web.Common.Message.SurveyAnswerResponse SurveyAnswerResponse = _isurveyFacade.GetSurveyAnswerResponse(ResponseID); SurveyAnswer = SurveyAnswerResponse.SurveyResponseList[0]; SurveyInfoModel surveyInfoModel = GetSurveyInfo(SurveyAnswer.SurveyId); // set the survey answer to be production or test SurveyAnswer.IsDraftMode = surveyInfoModel.IsDraftMode; XDocument xdoc = XDocument.Parse(surveyInfoModel.XML); // MvcDynamicForms.Form form = _isurveyFacade.GetSurveyFormData(SurveyAnswer.SurveyId, 1, SurveyAnswer, IsMobileDevice, "homeController"); MvcDynamicForms.Form form = _isurveyFacade.GetSurveyFormData(SurveyAnswer.SurveyId, 1, SurveyAnswer, IsMobileDevice, null); var _FieldsTypeIDs = from _FieldTypeID in xdoc.Descendants("Field") select _FieldTypeID; TempData["Width"] = form.Width + 100; XDocument xdocResponse = XDocument.Parse(SurveyAnswer.XML); XElement ViewElement = xdoc.XPathSelectElement("Template/Project/View"); string checkcode = ViewElement.Attribute("CheckCode").Value.ToString(); form.FormCheckCodeObj = form.GetCheckCodeObj(xdoc, xdocResponse, checkcode); ///////////////////////////// Execute - Record Before - start////////////////////// Dictionary <string, string> ContextDetailList = new Dictionary <string, string>(); EnterRule FunctionObject_B = (EnterRule)form.FormCheckCodeObj.GetCommand("level=record&event=before&identifier="); if (FunctionObject_B != null && !FunctionObject_B.IsNull()) { try { SurveyAnswer.XML = CreateResponseDocument(xdoc, SurveyAnswer.XML); form.RequiredFieldsList = this.RequiredList; FunctionObject_B.Context.HiddenFieldList = form.HiddenFieldsList; FunctionObject_B.Context.HighlightedFieldList = form.HighlightedFieldsList; FunctionObject_B.Context.DisabledFieldList = form.DisabledFieldsList; FunctionObject_B.Context.RequiredFieldList = form.RequiredFieldsList; FunctionObject_B.Execute(); // field list form.HiddenFieldsList = FunctionObject_B.Context.HiddenFieldList; form.HighlightedFieldsList = FunctionObject_B.Context.HighlightedFieldList; form.DisabledFieldsList = FunctionObject_B.Context.DisabledFieldList; form.RequiredFieldsList = FunctionObject_B.Context.RequiredFieldList; ContextDetailList = Epi.Web.MVC.Utility.SurveyHelper.GetContextDetailList(FunctionObject_B); form = Epi.Web.MVC.Utility.SurveyHelper.UpdateControlsValuesFromContext(form, ContextDetailList); SurveyAnswer.RecordBeforeFlag = true; _isurveyFacade.UpdateSurveyResponse(surveyInfoModel, ResponseID.ToString(), form, SurveyAnswer, false, false, 0); } catch (Exception ex) { // do nothing so that processing // can continue } } else { SurveyAnswer.XML = CreateResponseDocument(xdoc, SurveyAnswer.XML); form.RequiredFieldsList = RequiredList; _isurveyFacade.UpdateSurveyResponse(surveyInfoModel, SurveyAnswer.ResponseId, form, SurveyAnswer, false, false, 0); } SurveyAnswer = _isurveyFacade.GetSurveyAnswerResponse(SurveyAnswer.ResponseId).SurveyResponseList[0]; ///////////////////////////// Execute - Record Before - End////////////////////// //string page; // return RedirectToAction(Epi.Web.Models.Constants.Constant.INDEX, Epi.Web.Models.Constants.Constant.SURVEY_CONTROLLER, new {id="page" }); return(RedirectToAction(Epi.Web.MVC.Constants.Constant.INDEX, Epi.Web.MVC.Constants.Constant.SURVEY_CONTROLLER, new { responseid = ResponseID, PageNumber = 1 })); } catch (Exception ex) { Epi.Web.Utility.ExceptionMessage.SendLogMessage(ex, this.HttpContext); return(View(Epi.Web.MVC.Constants.Constant.EXCEPTION_PAGE)); } }
public ActionResult Index(string surveyId, string addNewFormId, string editForm) { // Assign "editForm" parameter to a less confusing name. // editForm contains the responseId of the record being edited. string editResponseId = editForm; bool isNewRecord; int orgId = GetIntSessionValue(UserSession.Key.CurrentOrgId); int userId = GetIntSessionValue(UserSession.Key.UserId); string userName = GetStringSessionValue(UserSession.Key.UserName); SetSessionValue(UserSession.Key.FormValuesHasChanged, string.Empty); var editResponseIdFromSession = GetStringSessionValue(UserSession.Key.EditResponseId); if (string.IsNullOrEmpty(editResponseId) && editResponseIdFromSession != null) { editResponseId = editResponseIdFromSession; } if (!string.IsNullOrEmpty(editResponseId) && string.IsNullOrEmpty(addNewFormId)) { // ------------------------------- // Edit Existing Record // ------------------------------- isNewRecord = false; SetSessionValue(UserSession.Key.RootResponseId, editResponseId); SetSessionValue(UserSession.Key.IsEditMode, true); SurveyAnswerDTO surveyAnswerDTO = GetSurveyAnswer(editResponseId, GetStringSessionValue(UserSession.Key.RootFormId)); SetSessionValue(UserSession.Key.RequestedViewId, surveyAnswerDTO.ViewId); surveyAnswerDTO.RecoverLastRecordVersion = GetBoolSessionValue(UserSession.Key.RecoverLastRecordVersion); RemoveSessionValue(UserSession.Key.RecoverLastRecordVersion); return(RedirectToAction(ViewActions.Index, ControllerNames.Survey, new { responseid = editResponseId, PageNumber = 1, surveyid = surveyAnswerDTO.SurveyId, Edit = "Edit" })); } // ------------------------------- // Add New Record // ------------------------------- isNewRecord = true; SetSessionValue(UserSession.Key.IsEditMode, false); bool isMobileDevice = this.Request.Browser.IsMobileDevice; if (isMobileDevice == false) { isMobileDevice = Epi.Cloud.MVC.Utility.SurveyHelper.IsMobileDevice(this.Request.UserAgent.ToString()); } FormsAuthentication.SetAuthCookie("BeginSurvey", false); //create the responseid Guid responseId = Guid.NewGuid(); TempData[TempDataKeys.ResponseId] = responseId.ToString(); // create the first survey response // Epi.Cloud.Common.DTO.SurveyAnswerDTO SurveyAnswer = _isurveyFacade.CreateSurveyAnswer(surveyModel.SurveyId, ResponseID.ToString()); SetSessionValue(UserSession.Key.RootFormId, addNewFormId); var rootResponseId = responseId; SetSessionValue(UserSession.Key.RootResponseId, rootResponseId); var responseContext = InitializeResponseContext(formId: addNewFormId, responseId: responseId.ToString(), isNewRecord: true) as ResponseContext; SurveyAnswerDTO surveyAnswer = _surveyFacade.CreateSurveyAnswer(responseContext); surveyId = /*FromURL*/ surveyId ?? surveyAnswer.SurveyId; // Initialize the Metadata Accessor MetadataAccessor.CurrentFormId = surveyId; MvcDynamicForms.Form form = _surveyFacade.GetSurveyFormData(surveyAnswer.SurveyId, 1, surveyAnswer, isMobileDevice); SurveyInfoModel surveyInfoModel = form.SurveyInfo.ToFormInfoModel(); MetadataAccessor metadataAccessor = form.SurveyInfo as MetadataAccessor; // set the survey answer to be production or test surveyAnswer.IsDraftMode = form.SurveyInfo.IsDraftMode; TempData[TempDataKeys.Width] = form.Width + 100; string checkcode = MetadataAccessor.GetFormDigest(surveyId).CheckCode; form.FormCheckCodeObj = form.GetCheckCodeObj(metadataAccessor.GetFieldDigests(surveyId), surveyAnswer.ResponseDetail, checkcode); ///////////////////////////// Execute - Record Before - start////////////////////// Dictionary <string, string> contextDetailList = new Dictionary <string, string>(); EnterRule functionObject_B = (EnterRule)form.FormCheckCodeObj.GetCommand("level=record&event=before&identifier="); SurveyResponseBuilder surveyResponseBuilder = new SurveyResponseBuilder(_requiredList); if (functionObject_B != null && !functionObject_B.IsNull()) { try { PageDigest[] pageDigests = form.MetadataAccessor.GetCurrentFormPageDigests(); var responseDetail = surveyAnswer.ResponseDetail; responseDetail = surveyResponseBuilder.CreateResponseDocument(responseContext, pageDigests); SetSessionValue(UserSession.Key.RequiredList, surveyResponseBuilder.RequiredList); _requiredList = surveyResponseBuilder.RequiredList; form.RequiredFieldsList = _requiredList; functionObject_B.Context.HiddenFieldList = form.HiddenFieldsList; functionObject_B.Context.HighlightedFieldList = form.HighlightedFieldsList; functionObject_B.Context.DisabledFieldList = form.DisabledFieldsList; functionObject_B.Context.RequiredFieldList = form.RequiredFieldsList; functionObject_B.Execute(); // field list form.HiddenFieldsList = functionObject_B.Context.HiddenFieldList; form.HighlightedFieldsList = functionObject_B.Context.HighlightedFieldList; form.DisabledFieldsList = functionObject_B.Context.DisabledFieldList; form.RequiredFieldsList = functionObject_B.Context.RequiredFieldList; contextDetailList = Epi.Cloud.MVC.Utility.SurveyHelper.GetContextDetailList(functionObject_B); form = Epi.Cloud.MVC.Utility.SurveyHelper.UpdateControlsValuesFromContext(form, contextDetailList); _surveyFacade.UpdateSurveyResponse(surveyInfoModel, responseId.ToString(), form, surveyAnswer, false, false, 0, orgId, userId, userName); } catch (Exception ex) { // do nothing so that processing // can continue } } else { PageDigest[] pageDigestArray = metadataAccessor.GetPageDigests(surveyInfoModel.SurveyId); surveyAnswer.ResponseDetail = surveyResponseBuilder.CreateResponseDocument(responseContext, pageDigestArray); _requiredList = surveyResponseBuilder.RequiredList; SetSessionValue(UserSession.Key.RequiredList, surveyResponseBuilder.RequiredList); form.RequiredFieldsList = _requiredList; } ///////////////////////////// Execute - Record Before - End////////////////////// return(RedirectToAction(ViewActions.Index, ControllerNames.Survey, new { responseid = responseId, PageNumber = 1, surveyid = surveyInfoModel.SurveyId })); }
public ActionResult Index(string surveyId, string addNewFormId, string editForm, string cancel) { // Assign "editForm" parameter to a less confusing name. // editForm contains the responseId of the record being edited. string editResponseId = editForm; int userId = GetIntSessionValue(UserSession.Key.UserId); string userName = GetStringSessionValue(UserSession.Key.UserName); bool isMobileDevice = this.Request.Browser.IsMobileDevice; FormsAuthentication.SetAuthCookie("BeginSurvey", false); bool isEditMode = false; if (isMobileDevice == true) { isMobileDevice = Epi.Cloud.MVC.Utility.SurveyHelper.IsMobileDevice(this.Request.UserAgent.ToString()); } bool isAndroid = this.Request.UserAgent.IndexOf("Android", StringComparison.OrdinalIgnoreCase) >= 0; if (!string.IsNullOrEmpty(/*FromURL*/ cancel)) { int pageNumber; int.TryParse(/*FromURL*/ cancel, out pageNumber); Dictionary <string, int> surveyPagesList = GetSessionValue <Dictionary <string, int> >(UserSession.Key.RelateButtonPageId); if (surveyPagesList != null) { pageNumber = surveyPagesList[this.Request.Form["Parent_Response_Id"].ToString()]; } return(RedirectToRoute(new { Controller = "Survey", Action = "Index", responseid = this.Request.Form["Parent_Response_Id"].ToString(), PageNumber = pageNumber })); } if (string.IsNullOrEmpty(/*FromURL*/ editResponseId) && string.IsNullOrEmpty(/*FromURL*/ addNewFormId) && !IsSessionValueNull(UserSession.Key.EditResponseId)) { editResponseId = GetStringSessionValue(UserSession.Key.EditResponseId); } if (!string.IsNullOrEmpty(editResponseId)) { if (IsSessionValueNull(UserSession.Key.RootResponseId)) { SetSessionValue(UserSession.Key.RootResponseId, editResponseId); } isEditMode = true; SetSessionValue(UserSession.Key.IsEditMode, isEditMode); SurveyAnswerDTO surveyAnswer = GetSurveyAnswer(editResponseId, GetStringSessionValue(UserSession.Key.RootFormId)); if (!IsSessionValueNull(UserSession.Key.RecoverLastRecordVersion)) { surveyAnswer.RecoverLastRecordVersion = GetBoolSessionValue(UserSession.Key.RecoverLastRecordVersion); } // string childRecordId = GetChildRecordId(surveyAnswer); //return RedirectToAction(ViewActions.Index, ControllerNames.Survey, new { responseid = surveyAnswer.ParentResponseId, PageNumber = 1, Edit = "Edit" }); return(RedirectToAction(ViewActions.Index, ControllerNames.Survey, new { responseid = editResponseId, PageNumber = 1, Edit = "Edit" })); } //create the responseid Guid responseId = Guid.NewGuid(); if (IsSessionValueNull(UserSession.Key.RootResponseId)) { SetSessionValue(UserSession.Key.RootResponseId, responseId); } var rootResponseId = GetStringSessionValue(UserSession.Key.RootResponseId); TempData[TempDataKeys.ResponseId] = responseId.ToString(); int orgId = GetIntSessionValue(UserSession.Key.CurrentOrgId); var responseContext = InitializeResponseContext(formId: /*FromURL*/ addNewFormId, responseId: responseId.ToString(), parentResponseId: this.Request.Form["Parent_Response_Id"].ToString(), isNewRecord: !isEditMode); // create the first survey response SurveyAnswerDTO surveyAnswerDTO = _surveyFacade.CreateSurveyAnswer(responseContext); List <FormsHierarchyDTO> formsHierarchy = GetFormsHierarchy(); SurveyInfoModel surveyInfoModel = GetSurveyInfo(surveyAnswerDTO.SurveyId, formsHierarchy); MetadataAccessor metadataAccessor = surveyInfoModel as MetadataAccessor; // set the survey answer to be production or test surveyAnswerDTO.IsDraftMode = surveyInfoModel.IsDraftMode; MvcDynamicForms.Form form = _surveyFacade.GetSurveyFormData(surveyAnswerDTO.SurveyId, 1, surveyAnswerDTO, isMobileDevice, null, formsHierarchy, isAndroid); TempData[TempDataKeys.Width] = form.Width + 100; var formDigest = metadataAccessor.GetFormDigest(surveyAnswerDTO.SurveyId); string checkcode = formDigest.CheckCode; FormResponseDetail responseDetail = surveyAnswerDTO.ResponseDetail; form.FormCheckCodeObj = form.GetCheckCodeObj(MetadataAccessor.GetFieldDigests(surveyAnswerDTO.SurveyId), responseDetail, checkcode); ///////////////////////////// Execute - Record Before - start////////////////////// Dictionary <string, string> ContextDetailList = new Dictionary <string, string>(); EnterRule functionObject_B = (EnterRule)form.FormCheckCodeObj.GetCommand("level=record&event=before&identifier="); SurveyResponseBuilder surveyResponseBuilder = new SurveyResponseBuilder(_requiredList); if (functionObject_B != null && !functionObject_B.IsNull()) { try { PageDigest[] pageDigests = form.MetadataAccessor.GetCurrentFormPageDigests(); responseDetail = surveyResponseBuilder.CreateResponseDocument(responseContext, pageDigests); SetSessionValue(UserSession.Key.RequiredList, surveyResponseBuilder.RequiredList); _requiredList = surveyResponseBuilder.RequiredList; form.RequiredFieldsList = _requiredList; functionObject_B.Context.HiddenFieldList = form.HiddenFieldsList; functionObject_B.Context.HighlightedFieldList = form.HighlightedFieldsList; functionObject_B.Context.DisabledFieldList = form.DisabledFieldsList; functionObject_B.Context.RequiredFieldList = form.RequiredFieldsList; functionObject_B.Execute(); // field list form.HiddenFieldsList = functionObject_B.Context.HiddenFieldList; form.HighlightedFieldsList = functionObject_B.Context.HighlightedFieldList; form.DisabledFieldsList = functionObject_B.Context.DisabledFieldList; form.RequiredFieldsList = functionObject_B.Context.RequiredFieldList; ContextDetailList = SurveyHelper.GetContextDetailList(functionObject_B); form = SurveyHelper.UpdateControlsValuesFromContext(form, ContextDetailList); _surveyFacade.UpdateSurveyResponse(surveyInfoModel, responseId.ToString(), form, surveyAnswerDTO, false, false, 0, orgId, userId, userName); } catch (Exception ex) { // do nothing so that processing // can continue } } else { PageDigest[] pageDigestArray = form.MetadataAccessor.GetCurrentFormPageDigests();// metadataAccessor.GetPageDigests(surveyInfoModel.SurveyId); surveyAnswerDTO.ResponseDetail = surveyResponseBuilder.CreateResponseDocument(responseContext, pageDigestArray); _requiredList = surveyResponseBuilder.RequiredList; SetSessionValue(UserSession.Key.RequiredList, _requiredList); form.RequiredFieldsList = _requiredList; _surveyFacade.UpdateSurveyResponse(surveyInfoModel, surveyAnswerDTO.ResponseId, form, surveyAnswerDTO, false, false, 0, orgId, userId, userName); } surveyAnswerDTO = (SurveyAnswerDTO)formsHierarchy.SelectMany(x => x.ResponseIds).FirstOrDefault(z => z.ResponseId == surveyAnswerDTO.ResponseId); ///////////////////////////// Execute - Record Before - End////////////////////// return(RedirectToAction(ViewActions.Index, ControllerNames.Survey, new { responseid = responseId, PageNumber = 1 })); }
public ActionResult Respond(string shortPath) { var thisForm = _mvcForms.Forms.FirstOrDefault(form => form.ShortPath == shortPath); if (thisForm != null) { ViewData["FormName"] = thisForm.FormName; //Only retrieve non-hidden fields var formFields = _mvcForms.FormFields.Where(formitems => formitems.FormUid == thisForm.Uid & formitems.IsHidden == 0).OrderBy( formitem => formitem.SortOrder); //CUSTOM, reference http://mvcdynamicforms.codeplex.com/ //Using the MVC Dynamic Form project, build a form comprised of fields tied to the form items used by this custom form //TODO: Consider switching to conditionally build views using partial views with the KnockOutJS library for custom validation if (formFields.Count() > 0) { var dynamicFormFields = new List <Field>(); foreach (var formField in formFields) { var field = formField; var thisFieldType = _mvcForms.FormFieldTypes.Single(fieldtype => fieldtype.Uid == field.FormFieldTypeUid); switch (thisFieldType.FieldType) { case ("Literal"): dynamicFormFields.Add(new TextBox() { Key = field.Uid.ToString(), Template = String.Format("<p>{0}</p>", field.LiteralText.KillHtml()), DisplayOrder = field.SortOrder }); break; case ("TextBox"): dynamicFormFields.Add(new TextBox() { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, RegularExpression = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.RegExDefault : string.Empty, RegexMessage = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.ErrorMsgRegEx.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }); break; case ("TextArea"): var newTextArea = new TextArea() { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, RegularExpression = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.RegExDefault : string.Empty, RegexMessage = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.ErrorMsgRegEx.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }; int number; if (Int32.TryParse(field.Rows.ToString(), out number)) { newTextArea.InputHtmlAttributes.Add("rows", field.Rows.ToString()); } if (Int32.TryParse(field.Cols.ToString(), out number)) { newTextArea.InputHtmlAttributes.Add("cols", field.Cols.ToString()); } dynamicFormFields.Add(newTextArea); break; case ("SelectList"): var newSelectList = new Select { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }; if (Convert.ToBoolean(field.IsMultipleSelect)) { newSelectList.MultipleSelection = true; newSelectList.Size = Convert.ToInt32(field.ListSize); newSelectList.CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","); } else { newSelectList.ShowEmptyOption = Convert.ToBoolean(field.IsEmptyOption); newSelectList.EmptyOption = (Convert.ToBoolean(field.IsEmptyOption)) ? field.EmptyOption : null; newSelectList.CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","); } dynamicFormFields.Add(newSelectList); break; case ("CheckBox"): var newCheckBox = new CheckBox { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }; dynamicFormFields.Add(newCheckBox); break; case ("CheckBoxList"): var newCheckBoxList = new CheckBoxList { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","), Orientation = (field.Orientation == "vertical") ? Orientation.Vertical : Orientation.Horizontal }; dynamicFormFields.Add(newCheckBoxList); break; case ("RadioList"): var newRadioList = new RadioList { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","), Orientation = (field.Orientation == "vertical") ? Orientation.Vertical : Orientation.Horizontal }; dynamicFormFields.Add(newRadioList); break; case ("FileUpload"): var newFileUpload = new FileUpload { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, InvalidExtensionError = field.ErrorExtensions, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, DisplayOrder = field.SortOrder, }; if (!string.IsNullOrEmpty(field.ValidExtensions)) { newFileUpload.ValidExtensions = "." + field.ValidExtensions.Replace(Environment.NewLine, ",."); } var user = Membership.GetUser(User.Identity.Name); UserKey = user.ProviderUserKey.ToString(); newFileUpload.Validated += FileValidated; newFileUpload.Posted += FilePosted; dynamicFormFields.Add(newFileUpload); break; } } var dynamicForm = new MvcDynamicForms.Form(); dynamicForm.AddFields(dynamicFormFields.ToArray()); dynamicForm.Serialize = true; ViewData["FormUid"] = thisForm.Uid; return(View(dynamicForm)); } } return(RedirectToAction("Index", "Home")); }
//public SurveyAnswerDTO CreateSurveyAnswer(string surveyId, string responseId, int UserId, bool IsChild = false, string RelateResponseId = "", bool IsEditMode = false , int CurrentOrgId = -1) //{ // return SurveyHelper.CreateSurveyResponse(surveyId, responseId, _surveyAnswerRequest, _surveyAnswerDTO, _surveyResponseXML, _iSurveyAnswerRepository, UserId, IsChild, RelateResponseId, IsEditMode, CurrentOrgId); //} public void UpdateSurveyResponse(SurveyInfoModel surveyInfoModel, string responseId, MvcDynamicForms.Form form, Epi.Web.Common.DTO.SurveyAnswerDTO surveyAnswerDTO, bool IsSubmited, bool IsSaved, int PageNumber, int UserId) { // 1 Get the record for the current survey response // 2 update the current survey response and save the response //// 1 Get the record for the current survey response SurveyAnswerResponse surveyAnswerResponse = new SurveyAnswerResponse();//GetSurveyAnswerResponse(responseId, surveyInfoModel.SurveyId.ToString()); surveyAnswerResponse.SurveyResponseList.Add(surveyAnswerDTO); ///2 Update the current survey response and save it SurveyHelper.UpdateSurveyResponse(surveyInfoModel, form, _surveyAnswerRequest, _surveyResponseXML, _iSurveyAnswerRepository, surveyAnswerResponse, responseId, surveyAnswerDTO, IsSubmited, IsSaved, PageNumber, UserId); }
public MvcDynamicForms.Form GetSurveyFormData( string surveyId, int pageNumber, Epi.Web.Common.DTO.SurveyAnswerDTO surveyAnswerDTO, bool IsMobileDevice, List <SurveyAnswerDTO> _SurveyAnswerDTOList = null, List <Epi.Web.Common.DTO.FormsHierarchyDTO> FormsHierarchyDTOList = null, bool IsAndroid = false, bool GetSourceTables = true) { List <SurveyInfoDTO> List = new List <SurveyInfoDTO>(); //Get the SurveyInfoDTO Epi.Web.Common.DTO.SurveyInfoDTO surveyInfoDTO; if (FormsHierarchyDTOList == null || FormsHierarchyDTOList.Count() == 0) { surveyInfoDTO = SurveyHelper.GetSurveyInfoDTO(_surveyInfoRequest, _iSurveyInfoRepository, surveyId);//Pain Point 5s if (_SurveyAnswerDTOList != null) { foreach (var item in _SurveyAnswerDTOList) { Epi.Web.Common.Message.SurveyInfoRequest request = new SurveyInfoRequest(); request.Criteria.SurveyIdList.Add(item.SurveyId); Epi.Web.Common.DTO.SurveyInfoDTO _SurveyInfoDTO = SurveyHelper.GetSurveyInfoDTO(request, _iSurveyInfoRepository, item.SurveyId); List.Add(_SurveyInfoDTO); } } } else { // var SurveyInfoDTO = FormsHierarchyDTOList.First(x => x.FormId == surveyAnswerDTO.SurveyId); var SurveyInfoDTO = FormsHierarchyDTOList.First(x => x.FormId == surveyId); surveyInfoDTO = SurveyInfoDTO.SurveyInfo; _SurveyAnswerDTOList = new List <SurveyAnswerDTO>(); _SurveyAnswerDTOList.Add(surveyAnswerDTO); var DTOList = FormsHierarchyDTOList.Where(x => x.ResponseIds.Count() > 0); foreach (var item in DTOList) { //if (item.ResponseIds.Count() > 0) //{ var DTO = item.ResponseIds.FirstOrDefault(z => z.ResponseId == surveyAnswerDTO.RelateParentId); if (DTO != null && !_SurveyAnswerDTOList.Contains(DTO)) { _SurveyAnswerDTOList.Add(DTO); } //} } foreach (var item in _SurveyAnswerDTOList) { var _SurveyInfoDTO = FormsHierarchyDTOList.FirstOrDefault(x => x.FormId == item.SurveyId); List.Add(_SurveyInfoDTO.SurveyInfo); } } MvcDynamicForms.Form form = null; SourceTablesResponse Response = new SourceTablesResponse(); SourceTablesRequest Request = new Common.Message.SourceTablesRequest(); if (GetSourceTables) { //if (IsMobileDevice) //{ if (FormsHierarchyDTOList != null && FormsHierarchyDTOList.Count() > 0) { Request.SurveyId = FormsHierarchyDTOList[0].FormId.ToString(); } else { if (string.IsNullOrEmpty(surveyAnswerDTO.ParentRecordId)) { Request.SurveyId = surveyId; } else { Request.SurveyId = surveyAnswerDTO.ParentRecordId; } } Response = _iSurveyInfoRepository.GetSourceTables(Request);//Pain Point //} //else //{ // Request.SurveyId = FormsHierarchyDTOList[0].FormId.ToString(); // Response = _iSurveyInfoRepository.GetSourceTables(Request);//Pain Point //} } //if (IsMobileDevice) //{ // Epi.Web.MVC.Utility.MobileFormProvider.SurveyInfoList = List; // Epi.Web.MVC.Utility.MobileFormProvider.SurveyAnswerList = _SurveyAnswerDTOList; // form = Epi.Web.MVC.Utility.MobileFormProvider.GetForm(surveyInfoDTO, pageNumber, surveyAnswerDTO, IsAndroid, Response.List); //} //else //{ Epi.Web.MVC.Utility.FormProvider.SurveyInfoList = List; Epi.Web.MVC.Utility.FormProvider.SurveyAnswerList = _SurveyAnswerDTOList; form = Epi.Web.MVC.Utility.FormProvider.GetForm(surveyInfoDTO, pageNumber, surveyAnswerDTO, IsMobileDevice, IsAndroid, Response.List); //} return(form); }
public static void UpdateSurveyResponse(SurveyInfoModel surveyInfoModel, MvcDynamicForms.Form form, SurveyAnswerRequest surveyAnswerRequest, SurveyResponseXML surveyResponseXML, ISurveyAnswerRepository iSurveyAnswerRepository, SurveyAnswerResponse surveyAnswerResponse, string responseId, Epi.Web.Common.DTO.SurveyAnswerDTO surveyAnswerDTO, bool IsSubmited, bool IsSaved, int PageNumber, int UserId = -1) { // 1 Get the record for the current survey response // 2 update the current survey response // 3 save the current survey response if (!IsSubmited) { // 2 a. update the current survey answer request surveyAnswerRequest.SurveyAnswerList = surveyAnswerResponse.SurveyResponseList; surveyResponseXML.Add(form); XDocument SavedXml = XDocument.Parse(surveyAnswerDTO.XML); bool AddRoot = false; if (SavedXml.Root.FirstAttribute.Value.ToString() == "0") { AddRoot = true; } surveyAnswerRequest.SurveyAnswerList[0].XML = surveyResponseXML.CreateResponseXml(surveyInfoModel.SurveyId, AddRoot, form.CurrentPage, form.PageId).InnerXml; // 2 b. save the current survey response surveyAnswerRequest.Action = Epi.Web.MVC.Constants.Constant.UPDATE; //"Update"; //Append to Response Xml XDocument CurrentPageResponseXml = XDocument.Parse(surveyAnswerRequest.SurveyAnswerList[0].XML); if (SavedXml.Root.FirstAttribute.Value.ToString() != "0") { surveyAnswerRequest.SurveyAnswerList[0].XML = MergeXml(SavedXml, CurrentPageResponseXml, form.CurrentPage).ToString(); } } ////Update page number before saving response XML XDocument Xdoc = XDocument.Parse(surveyAnswerRequest.SurveyAnswerList[0].XML); if (PageNumber != 0) { Xdoc.Root.Attribute("LastPageVisited").Value = PageNumber.ToString(); } ////Update Hidden Fields List before saving response XML if (form.HiddenFieldsList != null) { Xdoc.Root.Attribute("HiddenFieldsList").Value = ""; Xdoc.Root.Attribute("HiddenFieldsList").Value = form.HiddenFieldsList.ToString(); } if (form.HighlightedFieldsList != null) { Xdoc.Root.Attribute("HighlightedFieldsList").Value = ""; Xdoc.Root.Attribute("HighlightedFieldsList").Value = form.HighlightedFieldsList.ToString(); } if (form.DisabledFieldsList != null) { Xdoc.Root.Attribute("DisabledFieldsList").Value = ""; Xdoc.Root.Attribute("DisabledFieldsList").Value = form.DisabledFieldsList.ToString(); } if (form.RequiredFieldsList != null) { Xdoc.Root.Attribute("RequiredFieldsList").Value = ""; Xdoc.Root.Attribute("RequiredFieldsList").Value = form.RequiredFieldsList.ToString(); } if (surveyAnswerDTO.RecordBeforeFlag) { Xdoc.Root.Attribute("RecordBeforeFlag").Value = "True"; } // AssignList List <KeyValuePair <string, String> > FieldsList = new List <KeyValuePair <string, string> >(); FieldsList = GetHiddenFieldsList(form); if (FieldsList != null) { IEnumerable <XElement> XElementList = Xdoc.XPathSelectElements("SurveyResponse/Page/ResponseDetail"); for (var i = 0; i < FieldsList.Count; i++) { foreach (XElement Element in XElementList) { if (Element.Attribute("QuestionName").Value.ToString().Equals(FieldsList[i].Key, StringComparison.OrdinalIgnoreCase)) { if (FieldsList[i].Value != null) { Element.Value = FieldsList[i].Value; } break; } } } } ////Update survey response Status if (IsSubmited) { surveyAnswerRequest.SurveyAnswerList[0].Status = 3; surveyAnswerRequest.SurveyAnswerList[0].DateCompleted = DateTime.Now; surveyAnswerRequest.SurveyAnswerList[0].Json = surveyAnswerResponse.SurveyResponseList[0].Json; // Xdoc.Root.Attribute("LastPageVisited").Remove(); // Xdoc.Root.Attribute("HiddenFieldsList").Remove(); // Xdoc.Root.Attribute("HighlightedFieldsList").Remove(); //Xdoc.Root.Attribute("DisabledFieldsList").Remove(); //Xdoc.Root.Attribute("RequiredFieldsList").Remove(); // Xdoc.Root.Attribute("RecordBeforeFlag").Remove(); //RemovePageNumAtt(Xdoc); } if (IsSaved) { surveyAnswerRequest.SurveyAnswerList[0].Status = 2; } surveyAnswerRequest.SurveyAnswerList[0].XML = Xdoc.ToString(); /////Update Survey Mode //////////////////// surveyAnswerRequest.SurveyAnswerList[0].IsDraftMode = surveyAnswerDTO.IsDraftMode; iSurveyAnswerRepository.SaveSurveyAnswer(surveyAnswerRequest); }
/// <summary> /// get the survey form data /// </summary> /// <param name="surveyId"></param> /// <param name="pageNumber"></param> /// <param name="surveyAnswerDTO"></param> /// <param name="isMobileDevice"></param> /// <param name="surveyAnswerDTOList"></param> /// <param name="formsHierarchyDTOList"></param> /// <param name="isAndroid"></param> /// <returns></returns> public MvcDynamicForms.Form GetSurveyFormData( string surveyId, int pageNumber, SurveyAnswerDTO surveyAnswerDTO, bool isMobileDevice, List <SurveyAnswerDTO> surveyAnswerDTOList = null, List <FormsHierarchyDTO> formsHierarchyDTOList = null, bool isAndroid = false) { List <SurveyInfoDTO> surveyInfoDTOList = new List <SurveyInfoDTO>(); //Get the SurveyInfoDTO SurveyInfoDTO surveyInfoDTO; if (formsHierarchyDTOList == null) { surveyInfoDTO = SurveyHelper.GetSurveyInfoDTO(_surveyInfoRequest, _surveyInfoService, surveyId); if (surveyAnswerDTOList != null) { foreach (var item in surveyAnswerDTOList) { Epi.Cloud.Common.Message.SurveyInfoRequest request = new SurveyInfoRequest(); request.Criteria.SurveyIdList.Add(item.SurveyId); SurveyInfoDTO surveyInfoDTO2 = SurveyHelper.GetSurveyInfoDTO(request, _surveyInfoService, item.SurveyId); surveyInfoDTOList.Add(surveyInfoDTO2); } } } else { var SurveyInfoDTO = formsHierarchyDTOList.First(x => x.FormId == (surveyAnswerDTO != null ? surveyAnswerDTO.SurveyId : surveyId)); surveyInfoDTO = SurveyInfoDTO.SurveyInfo; surveyAnswerDTOList = new List <SurveyAnswerDTO>(); surveyAnswerDTOList.Add(surveyAnswerDTO); foreach (var item in formsHierarchyDTOList) { if (item.ResponseIds.Count() > 0) { var DTO = item.ResponseIds.FirstOrDefault(z => z.ResponseId == surveyAnswerDTO.ParentResponseId); if (DTO != null && !surveyAnswerDTOList.Contains(DTO)) { surveyAnswerDTOList.Add(DTO); } } } foreach (var item in surveyAnswerDTOList) { if (item != null) { var formsHierarchyDTO = formsHierarchyDTOList.FirstOrDefault(x => x.FormId == item.SurveyId); surveyInfoDTOList.Add(formsHierarchyDTO.SurveyInfo); } } } var formProvider = isMobileDevice ? new MobileFormProvider(surveyId) : new FormProvider(surveyId); MvcDynamicForms.Form form = formProvider.GetForm(surveyInfoDTO, pageNumber, surveyAnswerDTO, surveyAnswerDTOList, surveyInfoDTOList, isAndroid); return(form); }
public void UpdateSurveyResponse(SurveyInfoModel surveyInfoModel, string responseId, MvcDynamicForms.Form form) { throw new NotImplementedException(); }