public ActionResult ReadSortedResponseInfo(string formid, int page, string sort, string sortfield, int orgid, bool reset = false)//List<FormInfoModel> ModelList, string formid) { //Code added to retain Search Starts if (reset) { Session["SortOrder"] = ""; Session["SortField"] = ""; } Session["SelectedOrgId"] = orgid; if (Session["RootFormId"] != null && Session["RootFormId"].ToString() == formid) { if (Session["SortOrder"] != null && !string.IsNullOrEmpty(Session["SortOrder"].ToString()) && string.IsNullOrEmpty(sort)) { sort = Session["SortOrder"].ToString(); } if (Session["SortField"] != null && !string.IsNullOrEmpty(Session["SortField"].ToString()) && string.IsNullOrEmpty(sortfield)) { sortfield = Session["SortField"].ToString(); } //if (Session["PageNumber"] != null && // !string.IsNullOrEmpty(Session["PageNumber"].ToString()) ) //{ // page = Convert.ToInt16(Session["PageNumber"].ToString()); //} Session["SortOrder"] = sort; Session["SortField"] = sortfield; //Session["PageNumber"] = page; } else { Session.Remove("SortOrder"); Session.Remove("SortField"); Session.Remove("PageNumber"); } //Code added to retain Search Ends. Session["RootFormId"] = formid; Session["PageNumber"] = page; bool IsMobileDevice = this.Request.Browser.IsMobileDevice; var model = new FormResponseInfoModel(); model = GetFormResponseInfoModel(formid, page, sort, sortfield, orgid); if (IsMobileDevice == false) { return(PartialView("ListResponses", model)); } else { return(View("ListResponses", model)); } }
public void GetProjectMetadataTest() { var surveyFacade = new Mock <ISurveyFacade>(); var securityFacade = new Mock <ISecurityFacade>(); var projectMetadataProvider = new Mock <Epi.Cloud.Interfaces.MetadataInterfaces.IProjectMetadataProvider>(); var surveyResponseDao = new Mock <ISurveyResponseDao>(); var mockControllerContext = new Mock <ControllerContext>(); var mockSession = new Mock <HttpSessionStateBase>(); string UserId = Epi.Common.Security.Cryptography.Encrypt("1014"); mockSession.SetupGet(s => s[SessionKeys.UserId]).Returns(UserId); //somevalue mockSession.SetupGet(s => s[SessionKeys.CurrentOrgId]).Returns(1); //surveyid=2e1d01d4-f50d-4f23-888b-cd4b7fc9884b //formid=63035d12-0386-4e52-a16e-afcadd1d1d7c //257b05f2-dab2-c8e3-caed-92f0f6a88169 mockSession.SetupGet(s => s[SessionKeys.ProjectId]).Returns("257b05f2-dab2-c8e3-caed-92f0f6a88169"); //somevalue mockControllerContext.Setup(p => p.HttpContext.Session).Returns(mockSession.Object); HomeController hmc = new HomeController(surveyFacade.Object, securityFacade.Object, projectMetadataProvider.Object, surveyResponseDao.Object); hmc.ControllerContext = mockControllerContext.Object; // Create fake Controller Context //var sessionItems = new SessionStateItemCollection(); //sessionItems[SessionKeys.UserId] = "1014"; //sessionItems[SessionKeys.ProjectId] = "f2aed655-b0a5-4f5e-8071-267f035e87a5"; //hmc.ControllerContext = new FakeControllerContext(hmc, sessionItems); FormResponseInfoModel infomdl = new FormResponseInfoModel(); infomdl = hmc.GetFormResponseInfoModel("2e1d01d4-f50d-4f23-888b-cd4b7fc9884b", 1, "", "", 1); //var info = 2e1d01d4-f50d-4f23-888b-cd4b7fc9884b Assert.IsNotNull(infomdl, "FormResponse is Empty"); }
protected FormResponseInfoModel GetFormResponseInfoModel(string surveyId, int orgId, int userId) { FormResponseInfoModel formResponseInfoModel = new FormResponseInfoModel(); formResponseInfoModel.SearchModel = new SearchBoxModel(); var surveyResponseBuilder = new SurveyResponseBuilder(); FormSettingRequest formSettingRequest = new FormSettingRequest { ProjectId = GetStringSessionValue(UserSession.Key.ProjectId) }; //Populating the request formSettingRequest.FormInfo.FormId = surveyId; formSettingRequest.FormInfo.UserId = userId; //Getting Column Name List formSettingRequest.CurrentOrgId = orgId; var formSettingResponse = formResponseInfoModel.FormSettingResponse = _surveyFacade.GetFormSettings(formSettingRequest); formSettingResponse.FormSetting.FormId = surveyId; _columns = formSettingResponse.FormSetting.ColumnNameList.ToList(); _columns.Sort(Compare); _columnDigests = formSettingResponse.FormSetting.ColumnDigestList.ToList(); _columnDigests.Sort(Compare); // Setting Column Name List formResponseInfoModel.Columns = _columns; formResponseInfoModel.ColumnDigests = _columnDigests; return(formResponseInfoModel); }
public ActionResult SaveSettings(string formid) { int CurrentOrgId = int.Parse(Session["SelectedOrgId"].ToString()); List <FormsHierarchyDTO> FormList = GetFormsHierarchy(formid); FormSettingRequest FormSettingReq = new Enter.Common.Message.FormSettingRequest(); int UserId = SurveyHelper.GetDecryptUserId(Session["UserId"].ToString()); foreach (var Form in FormList) { FormSettingReq.GetXml = true; FormSettingReq.FormInfo.FormId = new Guid(formid).ToString(); FormSettingReq.FormInfo.UserId = UserId; FormSettingDTO FormSetting = new FormSettingDTO(); FormSetting.FormId = Form.FormId; FormSetting.ColumnNameList = GetDictionary(this.Request.Form["SelectedColumns_" + Form.FormId]); FormSetting.AssignedUserList = GetDictionary(this.Request.Form["SelectedUser"]); FormSetting.SelectedOrgList = GetDictionary(this.Request.Form["SelectedOrg"]); FormSetting.IsShareable = GetBoolValue(this.Request.Form["IsShareable"]); FormSetting.SelectedDataAccessRule = int.Parse(this.Request.Form["DataAccessRuleId"]); if (!string.IsNullOrEmpty(this.Request.Form["SoftDeleteForm"]) && this.Request.Form["SoftDeleteForm"].ToUpper() == "ON") { FormSetting.IsDisabled = true; } if (!string.IsNullOrEmpty(this.Request.Form["RemoveTestData"]) && this.Request.Form["RemoveTestData"].ToUpper() == "ON") { FormSetting.DeleteDraftData = true; } FormSettingReq.FormSetting.Add(FormSetting); FormSettingReq.FormInfo.IsDraftMode = GetBoolValue(this.Request.Form["Mode"]); FormSettingReq.CurrentOrgId = CurrentOrgId; } FormSettingResponse FormSettingResponse = _isurveyFacade.SaveSettings(FormSettingReq); bool IsMobileDevice = this.Request.Browser.IsMobileDevice; var model = new FormResponseInfoModel(); model = GetFormResponseInfoModel(formid, 1, "", "", CurrentOrgId); if (IsMobileDevice == false) { if (!string.IsNullOrEmpty(this.Request.Form["SoftDeleteForm"]) && this.Request.Form["SoftDeleteForm"].ToUpper() == "ON") { return(Json(null)); } else { return(PartialView("ListResponses", model)); } } else { return(View("ListResponses", model)); } }
public ActionResult SaveSettings(string formid) { int currentOrgId = GetIntSessionValue(UserSession.Key.SelectedOrgId); List <FormsHierarchyDTO> formsHierarchyDTOList = GetFormsHierarchy(formid); FormSettingRequest formSettingReq = new FormSettingRequest { ProjectId = GetStringSessionValue(UserSession.Key.ProjectId) }; int userId = GetIntSessionValue(UserSession.Key.UserId); foreach (var formsHierarchyDTO in formsHierarchyDTOList) { formSettingReq.GetMetadata = true; formSettingReq.FormInfo.FormId = new Guid(formid).ToString(); formSettingReq.FormInfo.UserId = userId; FormSettingDTO formSetting = new FormSettingDTO(); formSetting.FormId = formsHierarchyDTO.FormId; formSetting.ColumnNameList = GetDictionary(this.Request.Form[FormSetting.Key.SelectedColumns_ + formsHierarchyDTO.FormId]); formSetting.AssignedUserList = GetDictionary(this.Request.Form[FormSetting.Key.SelectedUser]); formSetting.SelectedOrgList = GetDictionary(this.Request.Form[FormSetting.Key.SelectedOrg]); formSetting.IsShareable = GetBoolValue(this.Request.Form[FormSetting.Key.IsShareable]); formSetting.SelectedDataAccessRule = int.Parse(this.Request.Form[FormSetting.Key.DataAccessRuleId]); if (!string.IsNullOrEmpty(this.Request.Form[FormSetting.Key.SoftDeleteForm]) && this.Request.Form[FormSetting.Key.SoftDeleteForm].ToUpper() == "ON") { formSetting.IsDisabled = true; } if (!string.IsNullOrEmpty(this.Request.Form[FormSetting.Key.RemoveTestData]) && this.Request.Form[FormSetting.Key.RemoveTestData].ToUpper() == "ON") { formSetting.DeleteDraftData = true; } formSettingReq.FormSetting.Add(formSetting); formSettingReq.FormInfo.IsDraftMode = GetBoolValue(this.Request.Form[FormSetting.Key.Mode]); formSettingReq.CurrentOrgId = currentOrgId; } FormSettingResponse formSettingResponse = _surveyFacade.SaveSettings(formSettingReq); bool isMobileDevice = this.Request.Browser.IsMobileDevice; var model = new FormResponseInfoModel(); model = GetFormResponseInfoModel(formid, 1, "", "", currentOrgId); if (isMobileDevice == false) { if (!string.IsNullOrEmpty(this.Request.Form[FormSetting.Key.SoftDeleteForm]) && this.Request.Form[FormSetting.Key.SoftDeleteForm].ToUpper() == "ON") { return(Json(null)); } else { return(PartialView("ListResponses", model)); } } else { return(View("ListResponses", model)); } }
private void PopulateDropDownlists(FormResponseInfoModel FormResponseInfoModel, List <KeyValuePair <int, string> > list) { PopulateDropDownlist(out FormResponseInfoModel.SearchColumns1, FormResponseInfoModel.SearchModel.SearchCol1, list); PopulateDropDownlist(out FormResponseInfoModel.SearchColumns2, FormResponseInfoModel.SearchModel.SearchCol2, list); PopulateDropDownlist(out FormResponseInfoModel.SearchColumns3, FormResponseInfoModel.SearchModel.SearchCol3, list); PopulateDropDownlist(out FormResponseInfoModel.SearchColumns4, FormResponseInfoModel.SearchModel.SearchCol4, list); PopulateDropDownlist(out FormResponseInfoModel.SearchColumns5, FormResponseInfoModel.SearchModel.SearchCol5, list); }
public ActionResult ReadResponseInfo(string formid, int page = 1)//List<FormInfoModel> ModelList, string formid) { bool IsMobileDevice = this.Request.Browser.IsMobileDevice; var model = new FormResponseInfoModel(); Session["RootFormId"] = formid; model = GetFormResponseInfoModel(formid, page); if (IsMobileDevice == false) { return(PartialView("ListResponses", model)); } else { return(View("ListResponses", model)); } }
public ActionResult ReadResponseInfo(string formid, int page = 1) { bool isMobileDevice = this.Request.Browser.IsMobileDevice; var model = new FormResponseInfoModel(); SetSessionValue(UserSession.Key.RootFormId, formid); model = GetFormResponseInfoModel(formid, page); if (isMobileDevice == false) { return(PartialView("ListResponses", model)); } else { return(View("ListResponses", model)); } }
public FormResponseInfoModel GetFormResponseInfoModel(string SurveyId, int PageNumber, string sort = "", string sortfield = "", int orgid = -1) { int UserId = SurveyHelper.GetDecryptUserId(Session["UserId"].ToString()); FormResponseInfoModel FormResponseInfoModel = new FormResponseInfoModel(); FormResponseInfoModel.SearchModel = new SearchBoxModel(); SurveyResponseXML SurveyResponseXML = new SurveyResponseXML(); if (!string.IsNullOrEmpty(SurveyId)) { SurveyAnswerRequest FormResponseReq = new SurveyAnswerRequest(); FormSettingRequest FormSettingReq = new Enter.Common.Message.FormSettingRequest(); //Populating the request FormSettingReq.FormInfo.FormId = SurveyId; FormSettingReq.FormInfo.UserId = UserId; //Getting Column Name List FormSettingReq.CurrentOrgId = orgid; FormSettingReq.FormInfoOnly = true; FormSettingResponse FormSettingResponse = _isurveyFacade.GetFormSettings(FormSettingReq); //Pain Point Columns = FormSettingResponse.FormSetting.ColumnNameList.ToList(); Columns.Sort(Compare); // Setting Column Name List FormResponseInfoModel.Columns = Columns; FormResponseInfoModel.FormInfoModel.IsShared = FormSettingResponse.FormInfo.IsShared; FormResponseInfoModel.FormInfoModel.IsShareable = FormSettingResponse.FormInfo.IsShareable; // Set User Role //if (FormResponseInfoModel.FormInfoModel.IsShared) //{ // SetUserRole(UserId, orgid); //} //else //{ //SetUserRole(UserId, FormSettingResponse.FormInfo.OrganizationId); //} SetUserRole(UserId, orgid); FormResponseReq.Criteria.SurveyId = SurveyId.ToString(); FormResponseReq.Criteria.PageNumber = PageNumber; FormResponseReq.Criteria.UserId = UserId; FormResponseReq.Criteria.IsSqlProject = FormSettingResponse.FormInfo.IsSQLProject; FormResponseReq.Criteria.IsShareable = FormSettingResponse.FormInfo.IsShareable; FormResponseReq.Criteria.UserOrganizationId = orgid; Session["IsSqlProject"] = FormSettingResponse.FormInfo.IsSQLProject; Session["IsOwner"] = FormSettingResponse.FormInfo.IsOwner; //if (Session["SearchCriteria"] != null) //{ // FormResponseInfoModel.SearchModel = (SearchBoxModel)Session["SearchCriteria"]; //} // Following code retain search starts if (Session["SearchCriteria"] != null && !string.IsNullOrEmpty(Session["SearchCriteria"].ToString()) && (Request.QueryString["col1"] == null || Request.QueryString["col1"] == "undefined")) { FormResponseReq.Criteria.SearchCriteria = Session["SearchCriteria"].ToString(); FormResponseInfoModel.SearchModel = (SearchBoxModel)Session["SearchModel"]; } else { FormResponseReq.Criteria.SearchCriteria = CreateSearchCriteria(Request.QueryString, FormResponseInfoModel.SearchModel, FormResponseInfoModel); Session["SearchModel"] = FormResponseInfoModel.SearchModel; Session["SearchCriteria"] = FormResponseReq.Criteria.SearchCriteria; } // Following code retain search ends PopulateDropDownlists(FormResponseInfoModel, FormSettingResponse.FormSetting.FormControlNameList.ToList()); if (sort.Length > 0) { FormResponseReq.Criteria.SortOrder = sort; } if (sortfield.Length > 0) { FormResponseReq.Criteria.Sortfield = sortfield; } SurveyAnswerResponse FormResponseList = _isurveyFacade.GetFormResponseList(FormResponseReq);//Pain Point //var ResponseTableList ; //= FormSettingResponse.FormSetting.DataRows; //Setting Resposes List List <ResponseModel> ResponseList = new List <ResponseModel>(); foreach (var item in FormResponseList.SurveyResponseList) { if (item.SqlData != null) { ResponseList.Add(ConvertRowToModel(item, Columns)); } else { ResponseList.Add(SurveyResponseXML.ConvertXMLToModel(item, Columns)); } } //foreach (var item in FormResponseList.SurveyResponseList) //{ // ResponseList.Add(SurveyResponseXML.ConvertXMLToModel(item, Columns)); //} FormResponseInfoModel.ResponsesList = ResponseList; //Setting Form Info FormResponseInfoModel.FormInfoModel = Mapper.ToFormInfoModel(FormResponseList.FormInfo); //Setting Additional Data FormResponseInfoModel.NumberOfPages = FormResponseList.NumberOfPages; FormResponseInfoModel.PageSize = ReadPageSize(); FormResponseInfoModel.NumberOfResponses = FormResponseList.NumberOfResponses; FormResponseInfoModel.sortfield = sortfield; FormResponseInfoModel.sortOrder = sort; FormResponseInfoModel.CurrentPage = PageNumber; } return(FormResponseInfoModel); }
private string CreateSearchCriteria(System.Collections.Specialized.NameValueCollection nameValueCollection, SearchBoxModel SearchModel, FormResponseInfoModel Model) { FormCollection Collection = new FormCollection(nameValueCollection); StringBuilder searchBuilder = new StringBuilder(); if (ValidateSearchFields(Collection)) { if (Collection["col1"].Length > 0 && Collection["val1"].Length > 0) { searchBuilder.Append(Collection["col1"] + "='" + Collection["val1"] + "'"); SearchModel.SearchCol1 = Collection["col1"]; SearchModel.Value1 = Collection["val1"]; } if (Collection["col2"].Length > 0 && Collection["val2"].Length > 0) { searchBuilder.Append(" AND " + Collection["col2"] + "='" + Collection["val2"] + "'"); SearchModel.SearchCol2 = Collection["col2"]; SearchModel.Value2 = Collection["val2"]; } if (Collection["col3"].Length > 0 && Collection["val3"].Length > 0) { searchBuilder.Append(" AND " + Collection["col3"] + "='" + Collection["val3"] + "'"); SearchModel.SearchCol3 = Collection["col3"]; SearchModel.Value3 = Collection["val3"]; } if (Collection["col4"].Length > 0 && Collection["val4"].Length > 0) { searchBuilder.Append(" AND " + Collection["col4"] + "='" + Collection["val4"] + "'"); SearchModel.SearchCol4 = Collection["col4"]; SearchModel.Value4 = Collection["val4"]; } if (Collection["col5"].Length > 0 && Collection["val5"].Length > 0) { searchBuilder.Append(" AND " + Collection["col5"] + "='" + Collection["val5"] + "'"); SearchModel.SearchCol5 = Collection["col5"]; SearchModel.Value5 = Collection["val5"]; } } return(searchBuilder.ToString()); }
protected string CreateSearchCriteria(NameValueCollection nameValueCollection, SearchBoxModel searchModel, FormResponseInfoModel model) { FormCollection formCollection = new FormCollection(nameValueCollection); StringBuilder searchBuilder = new StringBuilder(); if (ValidateSearchFields(formCollection)) { if (formCollection["col1"].Length > 0 && formCollection["val1"].Length > 0) { searchBuilder.Append(formCollection["col1"] + "='" + formCollection["val1"] + "'"); searchModel.SearchCol1 = formCollection["col1"]; searchModel.Value1 = formCollection["val1"]; } if (formCollection["col2"].Length > 0 && formCollection["val2"].Length > 0) { searchBuilder.Append(" AND " + formCollection["col2"] + "='" + formCollection["val2"] + "'"); searchModel.SearchCol2 = formCollection["col2"]; searchModel.Value2 = formCollection["val2"]; } if (formCollection["col3"].Length > 0 && formCollection["val3"].Length > 0) { searchBuilder.Append(" AND " + formCollection["col3"] + "='" + formCollection["val3"] + "'"); searchModel.SearchCol3 = formCollection["col3"]; searchModel.Value3 = formCollection["val3"]; } if (formCollection["col4"].Length > 0 && formCollection["val4"].Length > 0) { searchBuilder.Append(" AND " + formCollection["col4"] + "='" + formCollection["val4"] + "'"); searchModel.SearchCol4 = formCollection["col4"]; searchModel.Value4 = formCollection["val4"]; } if (formCollection["col5"].Length > 0 && formCollection["val5"].Length > 0) { searchBuilder.Append(" AND " + formCollection["col5"] + "='" + formCollection["val5"] + "'"); searchModel.SearchCol5 = formCollection["col5"]; searchModel.Value5 = formCollection["val5"]; } } return(searchBuilder.ToString()); }
public FormResponseInfoModel GetFormResponseInfoModel(string surveyId, int pageNumber, string sort = "", string sortfield = "", int orgid = -1) { // Initialize the Metadata Accessor MetadataAccessor.CurrentFormId = /*FromURL*/ surveyId; FormResponseInfoModel formResponseInfoModel = null; int orgId = GetIntSessionValue(UserSession.Key.CurrentOrgId); int userId = GetIntSessionValue(UserSession.Key.UserId); string userName = GetStringSessionValue(UserSession.Key.UserName); if (!string.IsNullOrEmpty(/*FromURL*/ surveyId)) { formResponseInfoModel = GetFormResponseInfoModel(/*FromURL*/ surveyId, orgid, userId); FormSettingResponse formSettingResponse = formResponseInfoModel.FormSettingResponse; var surveyResponseBuilder = new SurveyResponseBuilder(); formResponseInfoModel.FormInfoModel.IsShared = formSettingResponse.FormInfo.IsShared; formResponseInfoModel.FormInfoModel.IsShareable = formSettingResponse.FormInfo.IsShareable; formResponseInfoModel.FormInfoModel.FormName = formSettingResponse.FormInfo.FormName; formResponseInfoModel.FormInfoModel.FormNumber = formSettingResponse.FormInfo.FormNumber; // Set User Role SetUserRole(userId, orgid); // If this is the first grid query or the user elects to return to page 1 then // clear the QuerySetToken which will retrieve a new grid response set which may // include newly created records. if (pageNumber <= 1) { RemoveSessionValue(UserSession.Key.QuerySetToken); } var responseContext = InitializeResponseContext(formId: surveyId); SurveyAnswerRequest formResponseReq = new SurveyAnswerRequest { ResponseContext = responseContext }; formResponseReq.Criteria.SurveyId = /*FromURL*/ surveyId; formResponseReq.Criteria.PageNumber = pageNumber; formResponseReq.Criteria.UserId = userId; formResponseReq.Criteria.IsSqlProject = formSettingResponse.FormInfo.IsSQLProject; formResponseReq.Criteria.IsShareable = formSettingResponse.FormInfo.IsShareable; formResponseReq.Criteria.DataAccessRuleId = formSettingResponse.FormSetting.SelectedDataAccessRule; formResponseReq.Criteria.IsDraftMode = formSettingResponse.FormInfo.IsDraftMode; formResponseReq.Criteria.UserOrganizationId = orgid; SetSessionValue(UserSession.Key.IsSqlProject, formSettingResponse.FormInfo.IsSQLProject); SetSessionValue(UserSession.Key.IsOwner, formSettingResponse.FormInfo.IsOwner); // Following code retain search starts string sessionSearchCriteria = GetStringSessionValue(UserSession.Key.SearchCriteria, defaultValue: null); if (!string.IsNullOrEmpty(sessionSearchCriteria) && (Request.QueryString["col1"] == null || Request.QueryString["col1"] == "undefined")) { formResponseReq.Criteria.SearchCriteria = sessionSearchCriteria; formResponseInfoModel.SearchModel = GetSessionValue <SearchBoxModel>(UserSession.Key.SearchModel); } else { formResponseReq.Criteria.SearchCriteria = CreateSearchCriteria(Request.QueryString, formResponseInfoModel.SearchModel, formResponseInfoModel); SetSessionValue(UserSession.Key.SearchModel, formResponseInfoModel.SearchModel); SetSessionValue(UserSession.Key.SearchCriteria, formResponseReq.Criteria.SearchCriteria); } // Following code retain search ends PopulateDropDownlists(formResponseInfoModel, formSettingResponse.FormSetting.FormControlNameList.ToList()); if (sort != null && sort.Length > 0) { formResponseReq.Criteria.SortOrder = sort; } else { formResponseReq.Criteria.SortOrder = AppSettings.GetStringValue(AppSettings.Key.DefaultSortOrder); } if (sortfield.Length > 0) { formResponseReq.Criteria.Sortfield = sortfield; } else { formResponseReq.Criteria.Sortfield = AppSettings.GetStringValue(AppSettings.Key.DefaultSortField); } formResponseReq.Criteria.SurveyQAList = _columns.ToDictionary(c => c.Key.ToString(), c => c.Value); formResponseReq.Criteria.FieldDigestList = formResponseInfoModel.ColumnDigests.ToDictionary(c => c.Key, c => c.Value); formResponseReq.Criteria.SearchDigestList = ToSearchDigestList(formResponseInfoModel.SearchModel, /*FromURL*/ surveyId); formResponseReq.Criteria.QuerySetToken = GetStringSessionValue(UserSession.Key.QuerySetToken, null); SurveyAnswerResponse surveyAnswerResponse = _surveyFacade.GetFormResponseList(formResponseReq); // Remember the QuerySetToken to assure the same set of responses is queried if the user // navigates to some other page in the response grid. SetSessionValue(UserSession.Key.QuerySetToken, surveyAnswerResponse.QuerySetToken); formResponseInfoModel.ResponsesList = surveyAnswerResponse.SurveyResponseList.Select(r => r.ToResponseModel(_columns)).ToList(); //Setting Form Info formResponseInfoModel.FormInfoModel = surveyAnswerResponse.FormInfo.ToFormInfoModel(); //Setting Additional Data formResponseInfoModel.NumberOfPages = surveyAnswerResponse.NumberOfPages; formResponseInfoModel.PageSize = surveyAnswerResponse.NumberOfResponsesPerPage; formResponseInfoModel.NumberOfResponses = surveyAnswerResponse.NumberOfResponses; formResponseInfoModel.sortfield = sortfield; formResponseInfoModel.sortOrder = sort; formResponseInfoModel.CurrentPage = pageNumber; } return(formResponseInfoModel); }
private FormResponseInfoModel GetFormResponseInfoModels(string surveyId, string responseId, List <FormsHierarchyDTO> formsHierarchyDTOList = null) { FormResponseInfoModel formResponseInfoModel = new FormResponseInfoModel(); var formHieratchyDTO = formsHierarchyDTOList.FirstOrDefault(h => h.FormId == surveyId); SurveyResponseBuilder surveyResponseBuilder = new SurveyResponseBuilder(); if (!string.IsNullOrEmpty(surveyId)) { SurveyAnswerRequest surveyAnswerRequest = new SurveyAnswerRequest(); FormSettingRequest formSettingRequest = new FormSettingRequest { ProjectId = GetStringSessionValue(UserSession.Key.ProjectId) }; //Populating the request formSettingRequest.FormInfo.FormId = surveyId; formSettingRequest.FormInfo.UserId = GetIntSessionValue(UserSession.Key.UserId); //Getting Column Name List FormSettingResponse formSettingResponse = _surveyFacade.GetFormSettings(formSettingRequest); _columns = formSettingResponse.FormSetting.ColumnNameList.ToList(); _columns.Sort(Compare); // Setting Column Name List formResponseInfoModel.Columns = _columns; //Getting Resposes var ResponseListDTO = formsHierarchyDTOList.FirstOrDefault(x => x.FormId == surveyId).ResponseIds; // If we don't have any data for this child form yet then create a response if (ResponseListDTO.Count == 0) { var formResponseDetail = InitializeFormResponseDetail(); formResponseDetail.ParentResponseId = responseId; formResponseDetail.ResponseId = Guid.NewGuid().ToString(); formResponseDetail.ResolveMetadataDependencies(); var surveyAnswerDTO = new SurveyAnswerDTO(formResponseDetail); surveyAnswerDTO.CurrentPageNumber = 1; ResponseListDTO.Add(surveyAnswerDTO); } //Setting Resposes List List <ResponseModel> ResponseList = new List <ResponseModel>(); foreach (var item in ResponseListDTO) { if (item.ParentResponseId == responseId) { if (item.SqlData != null) { ResponseList.Add(ConvertRowToModel(item, _columns, "ChildGlobalRecordID")); } else { ResponseList.Add(item.ToResponseModel(_columns)); } } } formResponseInfoModel.ResponsesList = ResponseList; formResponseInfoModel.PageSize = ReadPageSize(); formResponseInfoModel.CurrentPage = 1; } return(formResponseInfoModel); }
//string responseid,string SurveyId, int ViewId, string CurrentPage // View =0 Root form public ActionResult Index(string formid, string responseId, int pagenumber = 1, int viewId = 0) { bool reset = false; string sortField = null; string sortOrder = null; if (Request.QueryString["sortfield"] != null) { sortField = Request.QueryString["sortfield"]; SetSessionValue(UserSession.Key.SortField, sortField); } if (Request.QueryString["sort"] != null) { sortOrder = Request.QueryString["sort"]; SetSessionValue(UserSession.Key.SortOrder, sortOrder); } if (string.IsNullOrWhiteSpace(sortOrder)) { sortOrder = GetStringSessionValue(UserSession.Key.SortOrder, defaultValue: null); if (string.IsNullOrWhiteSpace(sortOrder)) { sortOrder = AppSettings.GetStringValue(AppSettings.Key.DefaultSortOrder); } } if (string.IsNullOrWhiteSpace(sortField)) { sortField = GetStringSessionValue(UserSession.Key.SortField, defaultValue: null); if (string.IsNullOrWhiteSpace(sortField)) { sortField = AppSettings.GetStringValue(AppSettings.Key.DefaultSortField); } } bool.TryParse(Request.QueryString["reset"], out reset); if (reset) { RemoveSessionValue(UserSession.Key.SortOrder); RemoveSessionValue(UserSession.Key.SortField); RemoveSessionValue(UserSession.Key.SearchCriteria); } string version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); ViewBag.Version = version; bool isAndroid = false; if (this.Request.UserAgent.IndexOf("Android", StringComparison.OrdinalIgnoreCase) >= 0) { isAndroid = true; } if (viewId == 0) { //Following code checks if request is for new or selected form. if (GetStringSessionValue(UserSession.Key.RootFormId) == formid) { _isNewRequest = false; } SetSessionValue(UserSession.Key.RootFormId, formid); RemoveSessionValue(UserSession.Key.RootResponseId); RemoveSessionValue(UserSession.Key.FormValuesHasChanged); SetSessionValue(UserSession.Key.IsEditMode, false); if (pagenumber == 0) { pagenumber = 1; } var model = new FormResponseInfoModel(); model.ViewId = viewId; int currentOrgId = GetIntSessionValue(UserSession.Key.CurrentOrgId, defaultValue: -1); model = GetSurveyResponseInfoModel(formid, pagenumber, sortOrder, sortField, currentOrgId); SetSessionValue(UserSession.Key.SelectedOrgId, model.FormInfoModel.OrganizationId); return(View("Index", model)); } else { List <FormsHierarchyDTO> formsHierarchy = GetFormsHierarchy(); int userId = SurveyHelper.GetDecryptUserId(Session[UserSession.Key.UserId].ToString()); bool isMobileDevice = this.Request.Browser.IsMobileDevice; int requestedViewId = viewId; SetSessionValue(UserSession.Key.RequestedViewId, requestedViewId); SurveyModel surveyModel = new SurveyModel(); surveyModel.RelateModel = formsHierarchy.ToRelateModel(formid); surveyModel.RequestedViewId = requestedViewId; var relateSurveyId = formsHierarchy.Single(x => x.ViewId == viewId); if (!string.IsNullOrEmpty(responseId)) { surveyModel.FormResponseInfoModel = GetFormResponseInfoModels(relateSurveyId.FormId, responseId, formsHierarchy); surveyModel.FormResponseInfoModel.NumberOfResponses = surveyModel.FormResponseInfoModel.ResponsesList.Count(); surveyModel.FormResponseInfoModel.ParentResponseId = responseId; } if (relateSurveyId.ResponseIds.Count() > 0) { SurveyAnswerDTO surveyAnswerDTO = GetSurveyAnswer(relateSurveyId.ResponseIds[0].ResponseId, relateSurveyId.FormId); var form = _surveyFacade.GetSurveyFormData(relateSurveyId.ResponseIds[0].SurveyId, 1, surveyAnswerDTO, isMobileDevice, null, null, isAndroid); surveyModel.Form = form; if (string.IsNullOrEmpty(responseId)) { surveyModel.FormResponseInfoModel = GetFormResponseInfoModels(relateSurveyId.FormId, responseId, formsHierarchy); surveyModel.FormResponseInfoModel.ParentResponseId = relateSurveyId.ResponseIds[0].ParentResponseId; } surveyModel.FormResponseInfoModel.FormInfoModel.FormName = form.SurveyInfo.SurveyName; surveyModel.FormResponseInfoModel.FormInfoModel.FormId = form.SurveyInfo.SurveyId; surveyModel.FormResponseInfoModel.NumberOfResponses = surveyModel.FormResponseInfoModel.ResponsesList.Count(); } else { FormResponseInfoModel responseInfoModel = new FormResponseInfoModel(); if (surveyModel.FormResponseInfoModel.ResponsesList.Count() > 0) { SurveyAnswerDTO surveyAnswerDTO = GetSurveyAnswer(surveyModel.FormResponseInfoModel.ResponsesList[0].Column0, relateSurveyId.FormId); responseInfoModel = GetFormResponseInfoModels(relateSurveyId.FormId, responseId, formsHierarchy); surveyModel.Form = _surveyFacade.GetSurveyFormData(surveyAnswerDTO.SurveyId, 1, surveyAnswerDTO, isMobileDevice, null, null, isAndroid); responseInfoModel.FormInfoModel.FormName = surveyModel.Form.SurveyInfo.SurveyName.ToString(); responseInfoModel.FormInfoModel.FormId = surveyModel.Form.SurveyInfo.SurveyId.ToString(); responseInfoModel.ParentResponseId = responseId;//SurveyModel.FormResponseInfoModel.ResponsesList[0].Column0; responseInfoModel.NumberOfResponses = surveyModel.FormResponseInfoModel.ResponsesList.Count(); } else { var form1 = _surveyFacade.GetSurveyInfoModel(relateSurveyId.FormId); responseInfoModel.FormInfoModel.FormName = form1.SurveyName.ToString(); responseInfoModel.FormInfoModel.FormId = form1.SurveyId.ToString(); responseInfoModel.ParentResponseId = responseId; } surveyModel.FormResponseInfoModel = responseInfoModel; } surveyModel.FormResponseInfoModel.ViewId = viewId; return(View("Index", surveyModel.FormResponseInfoModel)); } }
public FormResponseInfoModel GetSurveyResponseInfoModel(string surveyId, int pageNumber, string sort = "", string sortfield = "", int orgid = -1) { // Initialize the Metadata Accessor MetadataAccessor.CurrentFormId = surveyId; FormResponseInfoModel formResponseInfoModel = null; int orgId = GetIntSessionValue(UserSession.Key.CurrentOrgId); int userId = GetIntSessionValue(UserSession.Key.UserId); string userName = GetStringSessionValue(UserSession.Key.UserName); if (!string.IsNullOrEmpty(surveyId)) { formResponseInfoModel = GetFormResponseInfoModel(surveyId, orgid, userId); FormSettingResponse formSettingResponse = formResponseInfoModel.FormSettingResponse; var surveyResponseBuilder = new SurveyResponseBuilder(); formResponseInfoModel.FormInfoModel.IsShared = formSettingResponse.FormInfo.IsShared; formResponseInfoModel.FormInfoModel.IsShareable = formSettingResponse.FormInfo.IsShareable; formResponseInfoModel.FormInfoModel.FormName = formSettingResponse.FormInfo.FormName; formResponseInfoModel.FormInfoModel.FormNumber = formSettingResponse.FormInfo.FormNumber; // Set User Role //if (formResponseInfoModel.FormInfoModel.IsShared) //{ // SetUserRole(UserId, orgid); //} //else //{ //SetUserRole(UserId, FormSettingResponse.FormInfo.OrganizationId); //} //SetUserRole(userId, orgid); var responseContext = InitializeResponseContext(formId: surveyId); SurveyAnswerRequest formResponseReq = new SurveyAnswerRequest { ResponseContext = responseContext }; formResponseReq.Criteria.SurveyId = surveyId.ToString(); formResponseReq.Criteria.PageNumber = /*FromURL*/ pageNumber; formResponseReq.Criteria.UserId = userId; formResponseReq.Criteria.IsSqlProject = formSettingResponse.FormInfo.IsSQLProject; formResponseReq.Criteria.IsShareable = formSettingResponse.FormInfo.IsShareable; formResponseReq.Criteria.DataAccessRuleId = formSettingResponse.FormSetting.SelectedDataAccessRule; //formResponseReq.Criteria.IsMobile = true; formResponseReq.Criteria.UserOrganizationId = orgid; formResponseReq.Criteria.IsDraftMode = formSettingResponse.FormInfo.IsDraftMode; SetSessionValue(UserSession.Key.IsSqlProject, formSettingResponse.FormInfo.IsSQLProject); SetSessionValue(UserSession.Key.IsOwner, formSettingResponse.FormInfo.IsOwner); // Following code retain search starts string sessionSearchCriteria = GetStringSessionValue(UserSession.Key.SearchCriteria, defaultValue: null); if (!string.IsNullOrEmpty(sessionSearchCriteria) && (Request.QueryString["col1"] == null || Request.QueryString["col1"] == "undefined")) { formResponseReq.Criteria.SearchCriteria = sessionSearchCriteria; formResponseInfoModel.SearchModel = GetSessionValue <SearchBoxModel>(UserSession.Key.SearchModel); } else { formResponseReq.Criteria.SearchCriteria = CreateSearchCriteria(Request.QueryString, formResponseInfoModel.SearchModel, formResponseInfoModel); SetSessionValue(UserSession.Key.SearchModel, formResponseInfoModel.SearchModel); SetSessionValue(UserSession.Key.SearchCriteria, formResponseReq.Criteria.SearchCriteria); } // Following code retain search ends PopulateDropDownlists(formResponseInfoModel, formSettingResponse.FormSetting.FormControlNameList.ToList()); if (sort != null && sort.Length > 0) { formResponseReq.Criteria.SortOrder = sort; } else { formResponseReq.Criteria.SortOrder = AppSettings.GetStringValue(AppSettings.Key.DefaultSortOrder); } if (!string.IsNullOrEmpty(sortfield) && sortfield.Length > 0) { formResponseReq.Criteria.Sortfield = sortfield; } else { formResponseReq.Criteria.Sortfield = AppSettings.GetStringValue(AppSettings.Key.DefaultSortField); } formResponseReq.Criteria.SurveyQAList = _columns.ToDictionary(c => c.Key.ToString(), c => c.Value); formResponseReq.Criteria.FieldDigestList = formResponseInfoModel.ColumnDigests.ToDictionary(c => c.Key, c => c.Value); formResponseReq.Criteria.SearchDigestList = ToSearchDigestList(formResponseInfoModel.SearchModel, surveyId); SurveyAnswerResponse formResponseList = _surveyFacade.GetFormResponseList(formResponseReq); var surveyResponse = formResponseList.SurveyResponseList;//.Skip((pageNumber - 1) * 20).Take(20); formResponseList.SurveyResponseList = surveyResponse.ToList(); List <ResponseModel> responseList = new List <ResponseModel>(); List <ResponseModel> responseListModel = new List <ResponseModel>(); Dictionary <string, string> dictory = new Dictionary <string, string>(); List <Dictionary <string, string> > dictoryList = new List <Dictionary <string, string> >();; foreach (var item in formResponseList.SurveyResponseList) { if (item.SqlData != null) { responseList.Add(ConvertRowToModel(item, _columns, "GlobalRecordId")); } else { responseList.Add(item.ToResponseModel(_columns)); } } string sortFieldcolumn = string.Empty; if (!string.IsNullOrEmpty(sortfield)) { foreach (var column in _columns) { if (column.Value == sortfield) { sortFieldcolumn = "Column" + column.Key; } } } var sortList = responseList; if (!string.IsNullOrEmpty(sortfield)) { if (sort != "ASC") { switch (sortFieldcolumn) { case "Column1": responseListModel = sortList.OrderByDescending(x => x.Column1).ToList(); break; case "Column2": responseListModel = sortList.OrderByDescending(x => x.Column2).ToList(); break; case "Column3": responseListModel = sortList.OrderByDescending(x => x.Column3).ToList(); break; case "Column4": responseListModel = sortList.OrderByDescending(x => x.Column4).ToList(); break; case "Column5": responseListModel = sortList.OrderByDescending(x => x.Column5).ToList(); break; } } else { switch (sortFieldcolumn) { case "Column1": responseListModel = sortList.OrderBy(x => x.Column1).ToList(); break; case "Column2": responseListModel = sortList.OrderBy(x => x.Column2).ToList(); break; case "Column3": responseListModel = sortList.OrderBy(x => x.Column3).ToList(); break; case "Column4": responseListModel = sortList.OrderBy(x => x.Column4).ToList(); break; case "Column5": responseListModel = sortList.OrderBy(x => x.Column5).ToList(); break; } } // formResponseInfoModel.ResponsesList = responseListModel.Skip((pageNumber - 1) * 20).Take(20).ToList(); formResponseInfoModel.ResponsesList = responseList.Take(20).ToList(); } if (string.IsNullOrEmpty(sort)) { // formResponseInfoModel.ResponsesList = responseList.Skip((pageNumber - 1) * 20).Take(20).ToList(); formResponseInfoModel.ResponsesList = responseList.Take(20).ToList(); } //Setting Form Info formResponseInfoModel.FormInfoModel = formResponseList.FormInfo.ToFormInfoModel(); //Setting Additional Data formResponseInfoModel.NumberOfPages = formResponseList.NumberOfPages; formResponseInfoModel.PageSize = ReadPageSize(); formResponseInfoModel.NumberOfResponses = formResponseList.NumberOfResponses; formResponseInfoModel.sortfield = /*FromURL*/ sortfield; formResponseInfoModel.sortOrder = /*FromURL*/ sort; formResponseInfoModel.CurrentPage = /*FromURL*/ pageNumber; } return(formResponseInfoModel); }