private List <FormResponseProperties> ReadAllChildResponses(ResponseGridQueryCriteria responseGridQueryCriteria, bool includeChildrenOfChild = false)
        {
            try
            {
                List <FormResponseProperties> childResponses = new List <FormResponseProperties>();
                var responseContext            = responseGridQueryCriteria.ResponseContext;
                var rootFormName               = responseContext.RootFormName;
                var rootResponseResource       = ReadRootResponseResource(responseContext, false);
                var formResponsePropertiesList = rootResponseResource.GetChildResponseList(responseContext)
                                                 .Where(r => r.RecStatus != RecordStatus.Deleted).ToList();

                if (formResponsePropertiesList != null && formResponsePropertiesList.Count > 0)
                {
                    childResponses = formResponsePropertiesList
                                     .OrderByDescending(r => r.LastSaveTime)
                                     .ToList();

                    var pageSize = responseGridQueryCriteria.DisplayPageSize;
                    if (pageSize > 0)
                    {
                        var pageNumber = responseGridQueryCriteria.DisplayPageNumber;
                        childResponses = childResponses.Skip((pageNumber * pageSize) - pageSize).Take(pageSize).ToList();
                    }
                }

                return(childResponses);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            return(null);
        }
        private ResponseGridQueryPropertiesResult ReadAllRootResponses(ResponseGridQueryCriteria responseGridQueryCriteria, bool includeChildren = false)
        {
            try
            {
                var           responseContext   = responseGridQueryCriteria.ResponseContext;
                var           accessRuleContext = responseGridQueryCriteria.ResponseAccessRuleContext;
                var           rootFormName      = responseContext.RootFormName ?? this.GetRootFormName(responseContext.RootFormId);
                string        query;
                var           collectionAlias       = rootFormName;
                var           rootFormCollectionUri = GetCollectionUri(rootFormName);
                List <string> formProperties        = new List <string>
                {
                    "FormId", "FirstSaveTime", "LastSaveTime", "ResponseId", "UserName", "IsDraftMode"
                };

                query = GenerateResponseGridQuery(collectionAlias, responseContext.FormId, formProperties,
                                                  responseGridQueryCriteria.TrueCaseFieldNames,
                                                  responseGridQueryCriteria.SearchFieldNameValueQualifiers,
                                                  accessRuleContext != null && accessRuleContext.IsSharable ? accessRuleContext : null,
                                                  responseGridQueryCriteria.QuerySetToken);

                var responseGridQueryPropertiesResult = GetAllRootResponses(responseGridQueryCriteria,
                                                                            query, responseGridQueryCriteria.DisplayPageNumber, responseGridQueryCriteria.DisplayPageSize,
                                                                            responseGridQueryCriteria.QuerySetToken).Result;
                return(responseGridQueryPropertiesResult);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            return(null);
        }
        /// <summary>
        /// GetAllResponsesWithCriteria
        /// </summary>
        /// <param name="responseGridQueryCriteria"></param>
        /// <returns></returns>
        public ResponseGridQueryPropertiesResult GetAllResponsesWithCriteria(ResponseGridQueryCriteria responseGridQueryCriteria)
        {
            ResponseGridQueryPropertiesResult responseGridQueryPropertiesResult = null;

            try
            {
                responseGridQueryPropertiesResult = ReadAllResponsesWithCriteria(responseGridQueryCriteria);
            }
            catch (DocumentQueryException ex)
            {
                Console.WriteLine(ex.ToString());
            }
            return(responseGridQueryPropertiesResult);
        }
示例#4
0
        /// <summary>
        /// Execute DB SP-Get all records by FormName (aka: collectionId)
        /// </summary>
        /// <param name="collectionId"></param>
        /// <param name="spId"></param>
        /// <param name="udfWildCardCompareId"></param>
        /// <param name="query"></param>
        /// <returns></returns>
        private async Task <ResponseGridQueryPropertiesResult> GetAllRootResponses(ResponseGridQueryCriteria responseGridQueryCriteria, string query,
                                                                                   int pageNumber, int responsesPerPage,
                                                                                   string querySetToken)
        {
            string collectionId    = responseGridQueryCriteria.ResponseContext.RootFormName;
            string sortKey         = responseGridQueryCriteria.SortByField.ToLowerInvariant();
            bool   isSortAscending = responseGridQueryCriteria.IsSortedAscending;

            var queryResult = await ExecuteSPAsync(collectionId, spGetGridContent, udfSharingRules, udfWildCardCompare,
                                                   query, sortKey, isSortAscending, pageNumber, responsesPerPage,
                                                   querySetToken);

            return(queryResult);
        }
示例#5
0
        public ResponseGridQueryResult GetAllResponsesWithCriteria(ResponseGridQueryCriteria responseGridQueryCriteria)
        {
            ResponseGridQueryPropertiesResult responseGridQueryPropertiesResult = _formResponseCRUD.GetAllResponsesWithCriteria(responseGridQueryCriteria);
            var formResponseDetailList = responseGridQueryPropertiesResult.ResponsePropertiesList.ToFormResponseDetailList();
            var result = new ResponseGridQueryResult
            {
                FormResponseDetailList           = responseGridQueryPropertiesResult.ResponsePropertiesList.ToFormResponseDetailList(),
                QuerySetToken                    = responseGridQueryPropertiesResult.QuerySetToken,
                NumberOfResponsesReturnedByQuery = responseGridQueryPropertiesResult.NumberOfResponsesReturnedByQuery,
                NumberOfResponsesPerPage         = responseGridQueryPropertiesResult.NumberOfResponsesPerPage,
                NumberOfResponsesOnSelectedPage  = responseGridQueryPropertiesResult.NumberOfResponsesOnSelectedPage,
                PageNumber                = responseGridQueryPropertiesResult.PageNumber,
                NumberOfPages             = responseGridQueryPropertiesResult.NumberOfPages,
                PostProcessingWasRequired = responseGridQueryPropertiesResult.IsPostProcessingRequired
            };

            return(result);
        }
        private ResponseGridQueryPropertiesResult ReadAllResponsesWithCriteria(ResponseGridQueryCriteria responseGridQueryCriteria)
        {
            ResponseGridQueryPropertiesResult responseGridQueryPropertiesResult = new ResponseGridQueryPropertiesResult();

            if (responseGridQueryCriteria.ResponseContext.IsChildResponse)
            {
                //if (responseGridQueryCriteria.SearchQualifiers != null && responseGridQueryCriteria.SearchQualifiers.Count > 0)
                //    throw new ArgumentException("Search not available on child forms");

                responseGridQueryPropertiesResult.ResponsePropertiesList = ReadAllChildResponses(responseGridQueryCriteria, /*includeChildrenOfChild*/ false);
            }
            else
            {
                try
                {
                    responseGridQueryPropertiesResult = ReadAllRootResponses(responseGridQueryCriteria, false);
                }
                catch (DocumentQueryException ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
            return(responseGridQueryPropertiesResult);
        }