public FormSettingResponse GetFormSettings(FormSettingRequest pRequest)
 {
     try
     {
         FormSettingResponse result = _iDataService.GetFormSettings(pRequest);
         return(result);
     }
     catch (FaultException <CustomFaultException> cfe)
     {
         throw cfe;
     }
     catch (FaultException fe)
     {
         throw fe;
     }
     catch (CommunicationException ce)
     {
         throw ce;
     }
     catch (TimeoutException te)
     {
         throw te;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        public FormSettingResponse GetSettings(FormSettingRequest pRequest)
        {
            FormSettingResponse Response = new FormSettingResponse();

            try
            {
                Epi.Web.Enter.Interfaces.DataInterfaces.IDaoFactory    entityDaoFactory = new EFwcf.EntityDaoFactory();
                Epi.Web.Enter.Interfaces.DataInterface.IFormSettingDao IFormSettingDao  = entityDaoFactory.FormSettingDao;

                if (!string.IsNullOrEmpty(pRequest.FormInfo.FormId))
                {
                    Epi.Web.Enter.Interfaces.DataInterface.IFormInfoDao FormInfoDao = entityDaoFactory.FormInfoDao;

                    Epi.Web.Enter.Interfaces.DataInterface.IUserDao IUserDao = entityDaoFactory.UserDao;
                    Epi.Web.BLL.FormInfo    FormInfoImplementation           = new Epi.Web.BLL.FormInfo(FormInfoDao);
                    Epi.Web.BLL.FormSetting SettingsImplementation           = new Epi.Web.BLL.FormSetting(IFormSettingDao, IUserDao, FormInfoDao);
                    FormInfoBO FormInfoBO = FormInfoImplementation.GetFormInfoByFormId(pRequest.FormInfo.FormId, pRequest.GetXml, pRequest.FormInfo.UserId);
                    Response.FormInfo    = Mapper.ToFormInfoDTO(FormInfoBO);
                    Response.FormSetting = Mapper.ToDataTransferObject(SettingsImplementation.GetFormSettings(pRequest.FormInfo.FormId.ToString(), FormInfoBO.Xml));
                }
                else
                {
                    Epi.Web.BLL.FormSetting SettingsImplementation = new Epi.Web.BLL.FormSetting(IFormSettingDao);
                    Response.FormSetting = Mapper.ToDataTransferObject(SettingsImplementation.GetFormSettings());
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(Response);
        }
        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));
            }
        }
Beispiel #5
0
        private static FormSettingResponse AddColumnDigest(FormSettingResponse formSettingResponse)
        {
            var formId            = formSettingResponse.FormInfo.FormId;
            var formSetting       = formSettingResponse.FormSetting;
            var metadataAccessor  = new MetadataAccessor();
            var fieldDigests      = metadataAccessor.GetFieldDigestsByFieldNames(formId, formSetting.ColumnNameList.Values);
            var reverseDictionary = formSetting.ColumnNameList.Select(t => new { t.Key, t.Value }).ToDictionary(t => t.Value, t => t.Key);

            formSetting.ColumnDigestList = fieldDigests.Select(t => new { Key = reverseDictionary[t.TrueCaseFieldName], Digest = t }).ToDictionary(t => t.Key, t => t.Digest);

            return(formSettingResponse);
        }
Beispiel #6
0
        private FormSettingResponse CreateFormSettingResponse(string formId, int userId, FormSettingBO formSettingBO)
        {
            FormSettingResponse response = new FormSettingResponse();

            var formInfoImplementation = new FormInfo(_formInfoDao);
            var formInfoBO             = formInfoImplementation.GetFormInfoByFormId(formId, userId);

            response.FormInfo    = formInfoBO.ToFormInfoDTO();
            response.FormSetting = formSettingBO.ToFormSettingDTO();

            return(response);
        }
Beispiel #7
0
        public FormSettingResponse SaveSettings(FormSettingRequest formSettingRequest)
        {
            FormSettingResponse response = new FormSettingResponse();

            try
            {
                Epi.Web.BLL.FormSetting formSettingImplementation = new Epi.Web.BLL.FormSetting(_formSettingFacade, _userDao);
                if (formSettingRequest.FormSetting.Count() > 0)
                {
                    foreach (var item in formSettingRequest.FormSetting)
                    {
                        formSettingImplementation.UpdateFormSettings(formSettingRequest.FormInfo.IsDraftMode, item);
                    }
                    string Message = formSettingImplementation.SaveSettings(formSettingRequest.FormInfo.IsDraftMode, formSettingRequest.FormSetting[0], formSettingRequest.CurrentOrgId);
                }

                return(response);
            }
            catch (Exception ex)
            {
                throw new FaultException <CustomFaultException>(new CustomFaultException(ex));
            }
        }
Beispiel #8
0
        public FormSettingResponse SaveSettings(FormSettingRequest formSettingRequest)
        {
            FormSettingResponse formSettingResponse = _formSettingsService.SaveSettings(formSettingRequest);

            return(formSettingResponse);
        }
Beispiel #9
0
        public FormSettingResponse GetFormSettings(FormSettingRequest formSettingRequest)
        {
            FormSettingResponse formSettingResponse = _formSettingsService.GetFormSettings(formSettingRequest);

            return(AddColumnDigest(formSettingResponse));
        }
        public ActionResult GetSettings(string formid)//List<FormInfoModel> ModelList, string formid)
        {
            FormSettingRequest FormSettingReq = new Enter.Common.Message.FormSettingRequest();
            List <KeyValuePair <int, string> > TempColumns = new List <KeyValuePair <int, string> >();
            //Get All forms
            List <FormsHierarchyDTO> FormsHierarchy = GetFormsHierarchy(formid);
            // List<FormSettingResponse> FormSettingResponseList = new List<FormSettingResponse>();
            List <SettingsInfoModel> ModelList = new List <SettingsInfoModel>();

            foreach (var Item in FormsHierarchy)
            {
                FormSettingReq.GetXml          = true;
                FormSettingReq.FormInfo.FormId = new Guid(Item.FormId).ToString();
                FormSettingReq.FormInfo.UserId = SurveyHelper.GetDecryptUserId(Session["UserId"].ToString());
                FormSettingReq.CurrentOrgId    = int.Parse(Session["SelectedOrgId"].ToString());
                //Getting Column Name  List

                FormSettingResponse FormSettingResponse = _isurveyFacade.GetFormSettings(FormSettingReq);
                //  FormSettingResponseList.Add(FormSettingResponse);



                // FormSettingResponse FormSettingResponse = _isurveyFacade.GetFormSettings(FormSettingReq);
                Columns     = FormSettingResponse.FormSetting.ColumnNameList.ToList();
                TempColumns = Columns;
                Columns.Sort(Compare);


                Dictionary <int, string> dictionary = Columns.ToDictionary(pair => pair.Key, pair => pair.Value);
                SettingsInfoModel        Model      = new SettingsInfoModel();
                Model.SelectedControlNameList = dictionary;

                Columns = FormSettingResponse.FormSetting.FormControlNameList.ToList();
                // Get Additional Metadata columns
                if (!FormSettingResponse.FormInfo.IsSQLProject)
                {
                    var MetaDataColumns = Epi.Web.MVC.Constants.Constant.MetaDaTaColumnNames();
                    Dictionary <int, string> Columndictionary = TempColumns.ToDictionary(pair => pair.Key, pair => pair.Value);

                    foreach (var item in MetaDataColumns)
                    {
                        if (!Columndictionary.ContainsValue(item))
                        {
                            Columns.Add(new KeyValuePair <int, string>(Columns.Count() + 1, item));
                        }
                    }

                    Columns.Sort(Compare);
                }

                Dictionary <int, string> dictionary1 = Columns.ToDictionary(pair => pair.Key, pair => pair.Value);

                Model.FormControlNameList = dictionary1;



                Columns = FormSettingResponse.FormSetting.AssignedUserList.ToList();
                if (Columns.Exists(col => col.Value == Session["UserEmailAddress"].ToString()))
                {
                    Columns.Remove(Columns.First(u => u.Value == Session["UserEmailAddress"].ToString()));
                }

                //Columns.Sort(Compare);

                Dictionary <int, string> dictionary2 = Columns.ToDictionary(pair => pair.Key, pair => pair.Value);

                Model.AssignedUserList = dictionary2;



                Columns = FormSettingResponse.FormSetting.UserList.ToList();

                if (Columns.Exists(col => col.Value == Session["UserEmailAddress"].ToString()))
                {
                    Columns.Remove(Columns.First(u => u.Value == Session["UserEmailAddress"].ToString()));
                }
                //Columns.Sort(Compare);

                Dictionary <int, string> dictionary3 = Columns.ToDictionary(pair => pair.Key, pair => pair.Value);

                Model.UserList = dictionary3;

                Columns = FormSettingResponse.FormSetting.AvailableOrgList.ToList();
                Dictionary <int, string> dictionary4 = Columns.ToDictionary(pair => pair.Key, pair => pair.Value);
                Model.AvailableOrgList = dictionary4;

                Columns = FormSettingResponse.FormSetting.SelectedOrgList.ToList();
                Dictionary <int, string> dictionary5 = Columns.ToDictionary(pair => pair.Key, pair => pair.Value);
                Model.SelectedOrgList = dictionary5;

                Model.IsShareable            = FormSettingResponse.FormInfo.IsShareable;
                Model.IsDraftMode            = FormSettingResponse.FormInfo.IsDraftMode;
                Model.FormOwnerFirstName     = FormSettingResponse.FormInfo.OwnerFName;
                Model.FormOwnerLastName      = FormSettingResponse.FormInfo.OwnerLName;
                Model.FormName               = FormSettingResponse.FormInfo.FormName;
                Model.FormId                 = Item.FormId;
                Model.DataAccessRuleIds      = FormSettingResponse.FormSetting.DataAccessRuleIds;
                Model.SelectedDataAccessRule = FormSettingResponse.FormSetting.SelectedDataAccessRule;
                Model.HasDraftModeData       = FormSettingResponse.FormInfo.HasDraftModeData;
                var DataAccessRuleDescription = "";
                foreach (var item in FormSettingResponse.FormSetting.DataAccessRuleDescription)
                {
                    DataAccessRuleDescription = DataAccessRuleDescription + item.Key.ToString() + " : " + item.Value + "\n";
                }

                Model.DataAccessRuleDescription = DataAccessRuleDescription;
                ModelList.Add(Model);
            }
            return(PartialView("Settings", ModelList));
        }
        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);
        }
        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);
        }
Beispiel #13
0
        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);
        }
Beispiel #14
0
        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);
        }
Beispiel #15
0
        public FormSettingResponse SaveSettings(FormSettingRequest FormSettingReq)
        {
            FormSettingResponse FormSettingResponse = _iSurveyAnswerRepository.SaveSettings(FormSettingReq);

            return(FormSettingResponse);
        }
Beispiel #16
0
        public FormSettingResponse GetFormSettings(FormSettingRequest pRequest)
        {
            FormSettingResponse FormSettingResponse = _iSurveyAnswerRepository.GetFormSettings(pRequest);

            return(FormSettingResponse);
        }