protected ActionResult UnlockResponse(String responseId, bool recoverLastRecordVersion = false) { try { int userId = GetIntSessionValue(UserSession.Key.UserId); int orgId = GetIntSessionValue(UserSession.Key.CurrentOrgId); var responseContext = InitializeResponseContext(responseId: responseId); var surveyAnswerDTO = new SurveyAnswerDTO(responseContext.ToFormResponseDetail()) { UserId = userId, UserOrgId = orgId }; surveyAnswerDTO.ResolveMetadataDependencies(); SurveyAnswerRequest surveyAnswerRequest = new SurveyAnswerRequest { ResponseContext = surveyAnswerDTO }; surveyAnswerRequest.SurveyAnswerList.Add(surveyAnswerDTO); surveyAnswerRequest.Criteria.StatusId = recoverLastRecordVersion ? RecordStatus.RecoverLastRecordVersion : RecordStatus.Saved; SetSessionValue(UserSession.Key.RecoverLastRecordVersion, recoverLastRecordVersion); _surveyFacade.UpdateResponseStatus(surveyAnswerRequest); } catch (Exception ex) { return(Json("Error")); } return(Json("Success")); }
private static string GetColumnValue(SurveyAnswerDTO item, string columnName) { string ColumnValue = ""; switch (columnName) { case Constant.MetaColumn.UserEmail: ColumnValue = item.UserEmail; break; case Constant.MetaColumn.DateUpdated: ColumnValue = item.DateUpdated.ToString(); break; case Constant.MetaColumn.DateCreated: ColumnValue = item.DateCreated.ToString(); break; case Constant.MetaColumn.IsDraftMode: case Constant.MetaColumn.Mode: if (item.IsDraftMode.ToString().ToUpper() == "TRUE") { ColumnValue = "Staging"; } else { ColumnValue = "Production"; } break; } return(ColumnValue); }
private ResponseModel ConvertRowToModel(SurveyAnswerDTO item, List <KeyValuePair <int, string> > Columns) { ResponseModel Response = new ResponseModel(); Response.Column0 = item.SqlData["GlobalRecordId"]; if (Columns.Count > 0) { Response.Column1 = item.SqlData[Columns[0].Value]; } if (Columns.Count > 1) { Response.Column2 = item.SqlData[Columns[1].Value]; } if (Columns.Count > 2) { Response.Column3 = item.SqlData[Columns[2].Value]; } if (Columns.Count > 3) { Response.Column4 = item.SqlData[Columns[3].Value]; } if (Columns.Count > 4) { Response.Column5 = item.SqlData[Columns[4].Value]; } //Response.Column2 = item.SqlData[Columns[2].Value]; //Response.Column3 = item.SqlData[Columns[3].Value]; //Response.Column4 = item.SqlData[Columns[4].Value]; //Response.Column5 = item.SqlData[Columns[5].Value]; return(Response); }
/// <summary> /// Maps SurveyInfoBO business object to SurveyInfoDTO entity. /// </summary> /// <param name="SurveyInfo">A SurveyInfoBO business object.</param> /// <returns>A SurveyInfoDTO.</returns> public static SurveyAnswerDTO ToDataTransferObject(SurveyResponseBO pBO) { SurveyAnswerDTO SurveyAnswerDTO = new SurveyAnswerDTO(); SurveyAnswerDTO.SurveyId = pBO.SurveyId; SurveyAnswerDTO.ResponseId = pBO.ResponseId; SurveyAnswerDTO.DateUpdated = pBO.DateUpdated; SurveyAnswerDTO.XML = pBO.XML; SurveyAnswerDTO.DateCompleted = pBO.DateCompleted; SurveyAnswerDTO.DateCreated = pBO.DateCreated; SurveyAnswerDTO.Status = pBO.Status; SurveyAnswerDTO.IsDraftMode = pBO.IsDraftMode; SurveyAnswerDTO.IsLocked = pBO.IsLocked; SurveyAnswerDTO.ParentRecordId = pBO.ParentRecordId; SurveyAnswerDTO.UserEmail = pBO.UserEmail; SurveyAnswerDTO.ViewId = pBO.ViewId; SurveyAnswerDTO.RelateParentId = pBO.RelateParentId; SurveyAnswerDTO.SqlData = pBO.SqlData; SurveyAnswerDTO.LastActiveUserId = pBO.LastActiveUserId; if (pBO.ResponseHierarchyIds != null) { SurveyAnswerDTO.ResponseHierarchyIds = ToDataTransferObject(pBO.ResponseHierarchyIds); } return(SurveyAnswerDTO); }
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 static ResponseContext ToResponseContext(this SurveyAnswerDTO surveyAnswerDTO) { MetadataAccessor metadataAccessor = new MetadataAccessor(); var responseContext = new ResponseContext { ResponseId = surveyAnswerDTO.ResponseId, ParentResponseId = surveyAnswerDTO.ParentResponseId, RootResponseId = surveyAnswerDTO.RootResponseId, FormId = surveyAnswerDTO.SurveyId, FormName = metadataAccessor.GetFormName(surveyAnswerDTO.SurveyId), ParentFormId = metadataAccessor.GetParentFormId(surveyAnswerDTO.SurveyId), ParentFormName = metadataAccessor.GetParentFormName(surveyAnswerDTO.SurveyId), RootFormId = metadataAccessor.GetRootFormId(surveyAnswerDTO.SurveyId), RootFormName = metadataAccessor.GetRootFormName(surveyAnswerDTO.SurveyId), IsNewRecord = surveyAnswerDTO.IsNewRecord, UserOrgId = surveyAnswerDTO.LoggedInUserOrgId, UserId = surveyAnswerDTO.LoggedInUserId, UserName = surveyAnswerDTO.UserName }.ResolveMetadataDependencies() as ResponseContext; //if (responseContext.FormId != metadataAccessor.GetFormIdByViewId(surveyAnswerDTO.ViewId)) // throw new ArgumentException("ViewId not in agreement with FormId", string.Format("FormId={0}, ViewId=>{1}", // responseContext.FormId, metadataAccessor.GetFormIdByViewId(surveyAnswerDTO.ViewId))); return(responseContext); }
public SurveyFacade(IDataEntryService dataEntryService, ISurveyInfoService surveyInfoService, IFormSettingsService formSettingsService, ISecurityFacade securityFacade, SurveyResponseBuilder surveyResponseBuilder, IProjectMetadataProvider projectMetadataProvider, Epi.Cloud.Common.Message.SurveyInfoRequest surveyInfoRequest, Epi.Cloud.Common.Message.SurveyAnswerRequest surveyResponseRequest, Epi.Cloud.Common.Message.UserAuthenticationRequest surveyAuthenticationRequest, SurveyAnswerDTO surveyAnswerDTO, FormInfoDTO formInfoDTO) { _dataEntryService = dataEntryService; _surveyInfoService = surveyInfoService; _formSettingsService = formSettingsService; _securityFacade = securityFacade; _surveyResponseBuilder = surveyResponseBuilder; _projectMetadataProvider = projectMetadataProvider; _surveyInfoRequest = surveyInfoRequest; _surveyAnswerRequest = surveyResponseRequest; _surveyAnswerDTO = surveyAnswerDTO; _formInfoDTO = formInfoDTO; }
protected ResponseModel ConvertRowToModel(SurveyAnswerDTO item, List <string> columns, string globalRecordIdKey) { ResponseModel responseModel = new ResponseModel(); responseModel.Column0 = item.SqlData[globalRecordIdKey]; if (columns.Count > 0) { responseModel.Column1 = item.SqlData[columns[0]]; } if (columns.Count > 1) { responseModel.Column2 = item.SqlData[columns[1]]; } if (columns.Count > 2) { responseModel.Column3 = item.SqlData[columns[2]]; } if (columns.Count > 3) { responseModel.Column4 = item.SqlData[columns[3]]; } if (columns.Count > 4) { responseModel.Column5 = item.SqlData[columns[4]]; } return(responseModel); }
public void TestSurveyAnswerDTO() { SurveyAnswerModel objSurveyAnswerModel = new SurveyAnswerModel(); SurveyAnswerDTO objSurveyAnswerDTO = new SurveyAnswerDTO(); int numberOfPublicPropertiesofSurveyAnswerDTO = objSurveyAnswerDTO.GetType().GetProperties().Count(); int numberOfPublicPropertiesofSurveyAnswerModel = objSurveyAnswerModel.GetType().GetProperties().Count(); Assert.AreEqual(numberOfPublicPropertiesofSurveyAnswerModel, SurveyAnswerModelPropertyCount, "SurveyAnswerModel properties has been changed"); Assert.AreEqual(numberOfPublicPropertiesofSurveyAnswerDTO, SurveyAnswerDTOPropertyCount, "SurveyAnswerDTO properties has been changed"); }
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)); } }
/// <summary> /// Maps SurveyMetaData entity to SurveyInfoBO business object. /// </summary> /// <param name="entity">A SurveyMetaData entity to be transformed.</param> /// <returns>A SurveyInfoBO business object.</returns> internal static SurveyResponseBO Map(SurveyAnswerDTO entity) { return(new SurveyResponseBO { SurveyId = entity.SurveyId.ToString(), ResponseId = entity.ResponseId.ToString(), XML = entity.XML, Status = entity.Status, UserPublishKey = entity.UserPublishKey, DateUpdated = entity.DateUpdated, DateCompleted = entity.DateCompleted }); }
protected SurveyAnswerDTO GetSurveyAnswer(string responseId, string formId = "") { SurveyAnswerDTO result = null; string rootResponseId = GetStringSessionValue(UserSession.Key.RootResponseId); string rootFormId = GetStringSessionValue(UserSession.Key.RootFormId); int userId = GetIntSessionValue(UserSession.Key.UserId); int orgId = GetIntSessionValue(UserSession.Key.CurrentOrgId); string userName = GetStringSessionValue(UserSession.Key.UserName); ResponseContext responseContext = GetSessionValue <ResponseContext>(UserSession.Key.ResponseContext); if (responseContext == null) { responseContext = new ResponseContext(); } if (!string.IsNullOrEmpty(formId)) { responseContext.FormId = formId; responseContext.FormName = MetadataAccessor.GetFormName(formId); responseContext.RootFormId = MetadataAccessor.GetRootFormId(formId); responseContext.RootFormName = MetadataAccessor.GetFormName(responseContext.RootFormId); } else { formId = responseContext.FormId; } if (!string.IsNullOrEmpty(responseId)) { responseContext.ResponseId = responseId; } responseContext.ResolveMetadataDependencies(); SetSessionValue(UserSession.Key.ResponseContext, responseContext); SetSessionValue(UserSession.Key.RootResponseId, responseContext.RootResponseId); var surveyAnswerRequest = new SurveyAnswerRequest { ResponseContext = responseContext }; result = _surveyFacade.GetSurveyAnswerDTO(surveyAnswerRequest); result.FormOwnerId = MetadataAccessor.GetFormDigest(formId).OwnerUserId; return(result); }
public static List <RelateModel> ToRelateModel(this SurveyAnswerDTO surveyAnswerDTO) { List <RelateModel> List = new List <RelateModel>(); RelateModel RelateModel = new RelateModel(); RelateModel.RootFormId = surveyAnswerDTO.RootFormId; RelateModel.FormId = surveyAnswerDTO.FormId; RelateModel.ViewId = surveyAnswerDTO.ViewId; RelateModel.IsSqlProject = true; RelateModel.IsRoot = surveyAnswerDTO.IsRootResponse; RelateModel.ResponseIds.Add(surveyAnswerDTO.ToSurveyAnswerModel()); List.Add(RelateModel); return(List); }
public static SurveyAnswerDTO ToSurveyAnswerDTOLite(this IResponseContext responseContext, SurveyAnswerDTO surveyAnswerDTO = null, int?recStatus = null) { if (surveyAnswerDTO == null) { surveyAnswerDTO = new SurveyAnswerDTO(); } surveyAnswerDTO.ResponseDetail = responseContext.ToFormResponseDetail(); if (recStatus.HasValue) { surveyAnswerDTO.RecStatus = recStatus.Value; } surveyAnswerDTO.LastActiveUserId = responseContext.UserId; surveyAnswerDTO.LastActiveOrgId = responseContext.UserOrgId; return(surveyAnswerDTO); }
/// <summary> /// Maps SurveyInfoBO business object to SurveyInfoDTO entity. /// </summary> /// <param name="SurveyInfo">A SurveyResponseDTO business object.</param> /// /// <returns>A SurveyResponseBO.</returns> public static SurveyResponseBO ToBusinessObject(SurveyAnswerDTO pDTO) { return(new SurveyResponseBO { SurveyId = pDTO.SurveyId, ResponseId = pDTO.ResponseId, DateUpdated = pDTO.DateUpdated, XML = pDTO.XML, DateCompleted = pDTO.DateCompleted, DateCreated = pDTO.DateCreated, Status = pDTO.Status, IsDraftMode = pDTO.IsDraftMode, RecordSourceId = pDTO.RecordSourceId, }); }
public static SurveyAnswerDTO ToSurveyAnswerDTO(this FormResponseDetail formResponseDetail, MetadataAccessor metadataAccessor = null) { SurveyAnswerDTO surveyAnswerDTO = new SurveyAnswerDTO(formResponseDetail); if (metadataAccessor == null) { metadataAccessor = new MetadataAccessor(); } var formDigest = metadataAccessor.GetFormDigest(formResponseDetail.FormId); surveyAnswerDTO.ViewId = formDigest.ViewId; surveyAnswerDTO.RequestedViewId = surveyAnswerDTO.ViewId.ToString(); surveyAnswerDTO.FormOwnerId = formDigest.OwnerUserId; return(surveyAnswerDTO); }
public static SurveyResponseBO ToSurveyResponseBO(this SurveyAnswerDTO surveyAnswerDTO, int?userId = null) { SurveyResponseBO surveyResponseBO = new SurveyResponseBO(); surveyResponseBO.ResponseDetail = surveyAnswerDTO.ResponseDetail; surveyResponseBO.UserPublishKey = surveyAnswerDTO.UserPublishKey; surveyResponseBO.DateUpdated = surveyAnswerDTO.DateUpdated; surveyResponseBO.DateCompleted = surveyAnswerDTO.DateCompleted; surveyResponseBO.ReasonForStatusChange = surveyAnswerDTO.ReasonForStatusChange; surveyResponseBO.LastActiveUserId = surveyAnswerDTO.LastActiveUserId; surveyResponseBO.CurrentOrgId = surveyAnswerDTO.UserOrgId; surveyResponseBO.LastActiveOrgId = surveyAnswerDTO.LastActiveOrgId; return(surveyResponseBO); }
/// <summary> /// Maps SurveyInfoBO business object to SurveyInfoDTO entity. /// </summary> /// <param name="SurveyInfo">A SurveyResponseDTO business object.</param> /// /// <returns>A SurveyResponseBO.</returns> public static SurveyResponseBO ToBusinessObject(SurveyAnswerDTO pDTO, int UserId = 0) { return(new SurveyResponseBO { SurveyId = pDTO.SurveyId, ResponseId = pDTO.ResponseId, DateUpdated = pDTO.DateUpdated, XML = pDTO.XML, DateCompleted = pDTO.DateCompleted, DateCreated = pDTO.DateCreated, Status = pDTO.Status, IsDraftMode = pDTO.IsDraftMode, UserId = UserId, ParentRecordId = pDTO.ParentRecordId, RecrodSourceId = pDTO.RecordSourceId, Json = pDTO.Json }); }
private static SurveyResponseBO ToSurveyResponseBO(SurveyAnswerDTO pDTO, int UserId) { SurveyResponseBO SurveyResponseBO = new SurveyResponseBO(); SurveyResponseBO.SurveyId = pDTO.SurveyId; SurveyResponseBO.ResponseId = pDTO.ResponseId; SurveyResponseBO.DateUpdated = pDTO.DateUpdated; SurveyResponseBO.XML = pDTO.XML; SurveyResponseBO.DateCompleted = pDTO.DateCompleted; SurveyResponseBO.DateCreated = pDTO.DateCreated; SurveyResponseBO.Status = pDTO.Status; SurveyResponseBO.IsDraftMode = pDTO.IsDraftMode; //UserId = UserId, SurveyResponseBO.ParentRecordId = pDTO.ParentRecordId; SurveyResponseBO.RecrodSourceId = pDTO.RecordSourceId; return(SurveyResponseBO); }
private static List <SurveyAnswerDTO> ToSurveyAnswerDTO(List <SurveyResponseBO> list) { List <SurveyAnswerDTO> ModelList = new List <SurveyAnswerDTO>(); foreach (var Obj in list) { SurveyAnswerDTO SurveyAnswerModel = new SurveyAnswerDTO(); SurveyAnswerModel.ResponseId = Obj.ResponseId; SurveyAnswerModel.SurveyId = Obj.SurveyId; SurveyAnswerModel.DateUpdated = Obj.DateUpdated; SurveyAnswerModel.DateCompleted = Obj.DateCompleted; SurveyAnswerModel.Status = Obj.Status; SurveyAnswerModel.XML = Obj.XML; SurveyAnswerModel.ParentRecordId = Obj.ParentRecordId; SurveyAnswerModel.RelateParentId = Obj.RelateParentId; ModelList.Add(SurveyAnswerModel); } return(ModelList); }
private string GetChildRecordId(SurveyAnswerDTO surveyAnswerDTO) { SurveyAnswerRequest SurveyAnswerRequest = new SurveyAnswerRequest(); SurveyAnswerResponse SurveyAnswerResponse = new SurveyAnswerResponse(); string ChildId = Guid.NewGuid().ToString(); surveyAnswerDTO.ParentResponseId = surveyAnswerDTO.ResponseId; surveyAnswerDTO.ResponseId = ChildId; surveyAnswerDTO.Status = RecordStatus.InProcess; surveyAnswerDTO.ReasonForStatusChange = RecordStatusChangeReason.CreateMulti; SurveyAnswerRequest.SurveyAnswerList.Add(surveyAnswerDTO); string result; //responseId = TempData[TempDataKeys.ResponseId].ToString(); SurveyAnswerRequest.Criteria.UserId = GetIntSessionValue(UserSession.Key.UserId); SurveyAnswerRequest.RequestId = ChildId; SurveyAnswerRequest.Action = RequestAction.CreateMulti; SurveyAnswerResponse = _surveyFacade.SetChildRecord(SurveyAnswerRequest); result = SurveyAnswerResponse.SurveyResponseList[0].ResponseId.ToString(); return(result); }
public static SurveyAnswerModel ToSurveyAnswerModel(this SurveyAnswerDTO surveyAnswerDTO, string responseId) { SurveyAnswerModel surveyAnswerModel = ((IResponseContext)surveyAnswerDTO).ToSurveyAnswerModel(); if (responseId == null || responseId == surveyAnswerDTO.ResponseDetail.ResponseId) { surveyAnswerModel.SurveyId = surveyAnswerDTO.SurveyId; surveyAnswerModel.DateUpdated = surveyAnswerDTO.DateUpdated; surveyAnswerModel.DateCompleted = surveyAnswerDTO.DateCompleted; surveyAnswerModel.Status = surveyAnswerDTO.Status; } else { var childResponseDetail = surveyAnswerDTO.ResponseDetail.FindFormResponseDetail(responseId); surveyAnswerModel.SurveyId = childResponseDetail.FormId; surveyAnswerModel.DateUpdated = childResponseDetail.LastSaveTime; surveyAnswerModel.DateCompleted = childResponseDetail.LastSaveTime; surveyAnswerModel.Status = childResponseDetail.RecStatus; } return(surveyAnswerModel); }
private string GetChildRecordId(SurveyAnswerDTO surveyAnswerDTO) { SurveyAnswerRequest SurveyAnswerRequest = new SurveyAnswerRequest(); SurveyAnswerResponse SurveyAnswerResponse = new SurveyAnswerResponse(); string ChildId = Guid.NewGuid().ToString(); surveyAnswerDTO.ParentRecordId = surveyAnswerDTO.ResponseId; surveyAnswerDTO.ResponseId = ChildId; surveyAnswerDTO.Status = 1; SurveyAnswerRequest.SurveyAnswerList.Add(surveyAnswerDTO); string result; //responseId = TempData[Epi.Web.MVC.Constants.Constant.RESPONSE_ID].ToString(); string Id = Session["UserId"].ToString(); SurveyAnswerRequest.Criteria.UserId = SurveyHelper.GetDecryptUserId(Id);//_UserId; SurveyAnswerRequest.RequestId = ChildId; SurveyAnswerRequest.Action = "CreateMulti"; SurveyAnswerResponse = _isurveyFacade.SetChildRecord(SurveyAnswerRequest); result = SurveyAnswerResponse.SurveyResponseList[0].ResponseId.ToString(); return(result); }
private List <FormsHierarchyDTO> GetFormsHierarchy(string responseId) { FormsHierarchyResponse FormsHierarchyResponse = new FormsHierarchyResponse(); FormsHierarchyRequest FormsHierarchyRequest = new FormsHierarchyRequest(); SurveyAnswerRequest ResponseIDsHierarchyRequest = new SurveyAnswerRequest(); SurveyAnswerResponse ResponseIDsHierarchyResponse = new SurveyAnswerResponse(); // FormsHierarchyRequest FormsHierarchyRequest = new FormsHierarchyRequest(); if (Session["RootFormId"] != null && responseId != null) { FormsHierarchyRequest.SurveyInfo.SurveyId = Session["RootFormId"].ToString(); FormsHierarchyRequest.SurveyResponseInfo.ResponseId = responseId.ToString(); FormsHierarchyResponse = _isurveyFacade.GetFormsHierarchy(FormsHierarchyRequest); SurveyAnswerDTO SurveyAnswerDTO = new SurveyAnswerDTO(); SurveyAnswerDTO.ResponseId = responseId.ToString(); ResponseIDsHierarchyRequest.SurveyAnswerList.Add(SurveyAnswerDTO); ResponseIDsHierarchyResponse = _isurveyFacade.GetSurveyAnswerHierarchy(ResponseIDsHierarchyRequest); FormsHierarchyResponse.FormsHierarchy = CombineLists(FormsHierarchyResponse.FormsHierarchy, ResponseIDsHierarchyResponse.SurveyResponseList); } return(FormsHierarchyResponse.FormsHierarchy); }
private SurveyAnswerRequest SetMessageObject(bool ReturnSizeInfoOnly, string SurveyId, Guid PublishKey, string OrganizationKey, bool IsDraftMode, int SurveyStatus, int PageNumber = -1, int PageSize = -1) { SurveyAnswerRequest Request = new SurveyAnswerRequest(); SurveyAnswerDTO SurveyResponseDTO = new SurveyAnswerDTO(); Request.Criteria = new SurveyAnswerCriteria(); Request.Criteria.SurveyId = SurveyId; Request.Criteria.UserPublishKey = PublishKey; Request.Criteria.OrganizationKey = new Guid(OrganizationKey); Request.Criteria.ReturnSizeInfoOnly = ReturnSizeInfoOnly; Request.Criteria.StatusId = SurveyStatus; Request.Criteria.IsDraftMode = IsDraftMode; Request.Criteria.SurveyAnswerIdList = new List <string>(); Request.Criteria.IsDownLoadFromApp = true; Request.Criteria.PageNumber = PageNumber; Request.Criteria.PageSize = PageSize; List <SurveyAnswerDTO> DTOList = new List <SurveyAnswerDTO>(); Request.SurveyAnswerList = DTOList; return(Request); }
/// <summary> /// Creates the first survey response in the response table /// </summary> /// <param name="responseContext"></param> /// <param name="surveyAnswerRequest1"></param> /// <param name="surveyAnswerDTO"></param> /// <param name="surveyResponseBuilder"></param> /// <param name="dataEntryService"></param> /// <param name="isEditMode"></param> /// <param name="currentOrgId"></param> /// <returns></returns> public static SurveyAnswerDTO CreateSurveyResponse(IResponseContext responseContext, SurveyAnswerRequest surveyAnswerRequest1, SurveyAnswerDTO surveyAnswerDTO, SurveyResponseBuilder surveyResponseBuilder, IDataEntryService dataEntryService) { SurveyAnswerRequest surveyAnswerRequest = new SurveyAnswerRequest(); surveyAnswerRequest.ResponseContext = responseContext; FormResponseDetail responseDetail = responseContext.ToFormResponseDetail(); surveyAnswerDTO.ResponseDetail = responseDetail; responseContext.ToSurveyAnswerDTOLite(surveyAnswerDTO); surveyAnswerDTO.DateCreated = DateTime.UtcNow; surveyAnswerDTO.SurveyId = responseContext.FormId; surveyAnswerDTO.Status = RecordStatus.InProcess; surveyAnswerDTO.LastActiveOrgId = responseContext.UserOrgId; surveyAnswerDTO.LastActiveUserId = responseContext.UserId; surveyAnswerDTO.LoggedInUserOrgId = responseContext.UserOrgId; surveyAnswerDTO.LoggedInUserId = responseContext.UserId; surveyAnswerDTO.RecordSourceId = RecordSource.CloudEnter; surveyAnswerDTO.ParentResponseId = responseContext.ParentResponseId; surveyAnswerRequest.Criteria.UserOrganizationId = responseContext.UserOrgId; surveyAnswerRequest.Criteria.UserId = responseContext.UserId; surveyAnswerRequest.Criteria.UserName = responseContext.UserName; surveyAnswerRequest.SurveyAnswerList.Add(surveyAnswerDTO); surveyAnswerRequest.Action = responseContext.IsChildResponse ? RequestAction.CreateChild : RequestAction.Create; dataEntryService.SetSurveyAnswer(surveyAnswerRequest); return(surveyAnswerDTO); }
/// <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 virtual Form GetForm(SurveyInfoDTO surveyInfo, int pageNumber, SurveyAnswerDTO surveyAnswer, List <SurveyAnswerDTO> surveyAnswerList, List <SurveyInfoDTO> surveyInfoList, bool isAndroid) { // Save last values for subsequent calls from ValidateAll in SurveyController SurveyAnswerList = surveyAnswerList; SurveyInfoList = surveyInfoList; var surveyId = CurrentFormId = surveyInfo.SurveyId; FormDigest currentFormDigest = GetFormDigest(surveyId); PageDigest currentPageDigest = GetPageDigestByPageNumber(surveyId, pageNumber); var pageId = currentPageDigest.PageId; string formId = currentFormDigest.FormId; string formName = currentFormDigest.FormName; FormResponseDetail formResponseDetail = surveyAnswer.ResponseDetail != null ? surveyAnswer.ResponseDetail : new FormResponseDetail { FormId = formId, FormName = formName }; PageResponseDetail pageResponseDetail = formResponseDetail.GetPageResponseDetailByPageId(pageId); var form = new Form(); form.PageId = pageId.ToString(); form.IsAndroid = isAndroid; form.ResponseId = surveyAnswer.ResponseId; form.FormName = surveyAnswer.FormName; form.FormId = surveyAnswer.FormId; form.ParentResponseId = surveyAnswer.ParentResponseId; form.ParentFormName = surveyAnswer.ParentFormName; form.ParentFormId = surveyAnswer.ParentFormId; form.RootResponseId = surveyAnswer.RootResponseId; form.RootFormName = surveyAnswer.RootFormName; form.RootFormId = surveyAnswer.RootFormId; form.SurveyInfo = surveyInfo; //Watermark if (form.SurveyInfo.IsDraftMode) { form.IsDraftModeStyleClass = "draft"; } form.CurrentPage = pageNumber; form.NumberOfPages = currentFormDigest.NumberOfPages; double _Width, _Height; var orientationIsPortrait = currentFormDigest.Orientation == "Portrait"; _Height = orientationIsPortrait ? currentFormDigest.Height : currentFormDigest.Width; _Width = orientationIsPortrait ? currentFormDigest.Width : currentFormDigest.Height; //Add checkcode to Form string checkcode = currentFormDigest.CheckCode; StringBuilder javaScript = new StringBuilder(); StringBuilder VariableDefinitions = new StringBuilder(); string defineFormat = "cce_Context.define(\"{0}\", \"{1}\", \"{2}\", \"{3}\");"; string defineNumberFormat = "cce_Context.define(\"{0}\", \"{1}\", \"{2}\", new Number({3}));"; if (surveyAnswerList != null && surveyAnswerList.Count > 0) { form.FormCheckCodeObj = form.GetRelateCheckCodeObj(GetRelateFormObj(surveyAnswerList, surveyInfoList), checkcode); } else { form.FormCheckCodeObj = form.GetCheckCodeObj(surveyInfo.GetFieldDigests(surveyId), formResponseDetail, checkcode); } form.HiddenFieldsList = formResponseDetail.HiddenFieldsList; form.HighlightedFieldsList = formResponseDetail.HighlightedFieldsList; form.DisabledFieldsList = formResponseDetail.DisabledFieldsList; form.RequiredFieldsList = formResponseDetail.RequiredFieldsList; form.FormCheckCodeObj.GetVariableJavaScript(VariableDefinitions); form.FormCheckCodeObj.GetSubroutineJavaScript(VariableDefinitions); string pageName = currentPageDigest.PageName; //Generate page level Java script (Before) javaScript.Append(GetPageLevelJS(pageNumber, form, pageName, "Before")); //Generate page level Java script (After) javaScript.Append(GetPageLevelJS(pageNumber, form, pageName, "After")); SetProviderSpecificProperties(form, _Height, _Width); var responseQA = pageResponseDetail != null ? pageResponseDetail.ResponseQA : new Dictionary <string, string>(); //if (responseQA.Count == 0) //{ // var pageFieldAttributes = GetPageFieldAttributesByPageId(surveyId, pageId); // responseQA = new Dictionary<string, string>(); // foreach (var fieldAttributes in pageFieldAttributes.Values) // { // if (fieldAttributes.Value != null) // { // responseQA.Add(fieldAttributes.FieldName.ToLower(), fieldAttributes.Value); // } // } //} AddFormFields(surveyInfo, pageId, responseQA, form, _Width, _Height, checkcode, javaScript); form.FormJavaScript = VariableDefinitions.ToString() + "\n" + javaScript.ToString(); return(form); }
public virtual Form GetForm(SurveyInfoDTO surveyInfo, int pageNumber, SurveyAnswerDTO surveyAnswer, bool isAndroid = false) { return(GetForm(surveyInfo, pageNumber, surveyAnswer, SurveyAnswerList, SurveyInfoList, isAndroid)); }
protected ResponseModel ConvertRowToModel(SurveyAnswerDTO item, List <KeyValuePair <int, string> > columns, string globalRecordIdKey) { return(ConvertRowToModel(item, columns.Select(c => c.Value).ToList(), globalRecordIdKey)); }