public FormResponseDetail CreateResponseDocument(IResponseContext responseContext, PageDigest[] pageDigests)
        {
            int numberOfPages = pageDigests.Length;

            var firstPageDigest = pageDigests.First();
            var formId          = firstPageDigest.FormId;
            var formName        = firstPageDigest.FormName;

            FormResponseDetail formResponseDetail = responseContext.ToFormResponseDetail();

            formResponseDetail.LastPageVisited = 1;

            foreach (var pageDigest in pageDigests)
            {
                var fieldNames         = pageDigest.FieldNames;
                var pageResponseDetail = new PageResponseDetail
                {
                    PageId     = pageDigest.PageId,
                    PageNumber = pageDigest.PageNumber,

                    ResponseQA = fieldNames.Select(x => new { Key = x.ToLower(), Value = string.Empty }).ToDictionary(n => n.Key, v => v.Value)
                };
                SetRequiredList(pageDigest.Fields);
                formResponseDetail.AddPageResponseDetail(pageResponseDetail);
            }
            return(formResponseDetail);
        }
 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);
 }
Exemplo n.º 3
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);
        }