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"));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 7
0
        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));
            }
        }
Ejemplo n.º 11
0
 /// <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);
        }
Ejemplo n.º 13
0
        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);
 }
Ejemplo n.º 15
0
 /// <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,
     });
 }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 18
0
 /// <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
     });
 }
Ejemplo n.º 19
0
        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);
        }
Ejemplo n.º 20
0
        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);
        }
Ejemplo n.º 21
0
        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);
        }
Ejemplo n.º 26
0
        /// <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);
        }
Ejemplo n.º 27
0
        /// <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);
        }
Ejemplo n.º 28
0
        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);
        }
Ejemplo n.º 29
0
 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));
 }