/// <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); }
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); }
private ResponseGridQueryPropertiesResult ExecuteQuery(string spId, Uri spUri, string query, string sortKey, bool isSortAscending, int pageNumber, int responsesPerPage, string querySetToken) { var responsePropertiesList = new List <FormResponseProperties>(); QueryResult queryResult = Client.ExecuteStoredProcedureAsync <QueryResult>(spUri, query, sortKey, isSortAscending, pageNumber, responsesPerPage, querySetToken).Result; foreach (var doc in queryResult.Result) { FormResponseProperties formResponse = (dynamic)doc; responsePropertiesList.Add(formResponse); } var responseGridQueryPropertiesResult = new ResponseGridQueryPropertiesResult { ResponsePropertiesList = responsePropertiesList, QuerySetToken = queryResult.QuerySetToken, NumberOfResponsesReturnedByQuery = queryResult.NumberOfResponsesReturnedByQuery, NumberOfResponsesPerPage = queryResult.NumberOfResponsesPerPage, NumberOfResponsesOnSelectedPage = queryResult.NumberOfResponsesOnSelectedPage, PageNumber = pageNumber, NumberOfPages = queryResult.NumberOfPages }; if (queryResult.Message == "Completed") { return(responseGridQueryPropertiesResult); } else { throw new Exception(queryResult.Message); // ----------------------------------Error Handling ---------------------------------- //string continuationToken = string.Empty; //int skip = 0; //bool isContinuationRequired = false; //bool isPostProcessingRequired = false; //do //{ //queryResult = Client.ExecuteStoredProcedureAsync<QueryResult>(spUri, query, sortKey, isSortAscending, // pageNumber, responsesPerPage, querySetToken/*, continuationToken, skip, // isPostProcessingRequired).Result; //foreach (var doc in queryResult.Result) //{ // FormResponseProperties formResponse = (dynamic)doc; // responsePropertiesList.Add(formResponse); //} //continuationToken = queryResult.ContinuationToken; //skip = queryResult.Skip; // isContinuationRequired = !string.IsNullOrEmpty(continuationToken); // isPostProcessingRequired |= isContinuationRequired; //} while (isContinuationRequired); //var responseGridQueryPropertiesResult = new ResponseGridQueryPropertiesResult //{ // ResponsePropertiesList = responsePropertiesList, // QuerySetToken = queryResult.QuerySetToken, // NumberOfResponsesReturnedByQuery = queryResult.NumberOfResponsesReturnedByQuery, // NumberOfResponsesPerPage = queryResult.NumberOfResponsesPerPage, // NumberOfResponsesOnSelectedPage = queryResult.NumberOfResponsesOnSelectedPage, // PageNumber = pageNumber, // NumberOfPages = queryResult.NumberOfPages // //IsPostProcessingRequired = isPostProcessingRequired //}; //if (isPostProcessingRequired) //{ // List<FormResponseProperties> pageResult = null; // skip = pageNumber * responsesPerPage - responsesPerPage; // sortKey = string.IsNullOrWhiteSpace(sortKey) ? MetaColumn.DateUpdated : sortKey; // switch (sortKey) // { // case MetaColumn.UserEmail: // pageResult = (isSortAscending // ? responsePropertiesList.OrderBy(r => r.UserName.ToUpperInvariant()) // : responsePropertiesList.OrderByDescending(r => r.UserName.ToUpperInvariant())) // .Skip(skip).Take(responsesPerPage).ToList(); // break; // case MetaColumn.IsDraftMode: // case MetaColumn.Mode: // pageResult = (isSortAscending // ? responsePropertiesList.OrderBy(r => r.IsDraftMode) // : responsePropertiesList.OrderByDescending(r => r.IsDraftMode)) // .Skip(skip).Take(responsesPerPage).ToList(); // break; // case MetaColumn.DateCreated: // pageResult = (isSortAscending // ? responsePropertiesList.OrderBy(r => r.FirstSaveTime) // : responsePropertiesList.OrderByDescending(r => r.FirstSaveTime)) // .Skip(skip).Take(responsesPerPage).ToList(); // break; // case MetaColumn.DateUpdated: // pageResult = (isSortAscending // ? responsePropertiesList.OrderBy(r => r.LastSaveTime) // : responsePropertiesList.OrderByDescending(r => r.LastSaveTime)) // .Skip(skip).Take(responsesPerPage).ToList(); // break; // default: // pageResult = (isSortAscending // ? responsePropertiesList.OrderBy(r => r.ResponseQA.ContainsKey(sortKey) && r.ResponseQA[sortKey] != null ? r.ResponseQA[sortKey].ToUpperInvariant() : string.Empty) // : responsePropertiesList.OrderByDescending(r => r.ResponseQA.ContainsKey(sortKey) && r.ResponseQA[sortKey] != null ? r.ResponseQA[sortKey].ToUpperInvariant() : string.Empty)) // .Skip(skip).Take(responsesPerPage).ToList(); // break; // } // var totalResponseCount = responsePropertiesList.Count(); // responseGridQueryPropertiesResult.NumberOfResponsesReturnedByQuery = totalResponseCount; // responseGridQueryPropertiesResult.NumberOfResponsesOnSelectedPage = pageResult.Count(); // responseGridQueryPropertiesResult.ResponsePropertiesList = pageResult; // responseGridQueryPropertiesResult.NumberOfPages = totalResponseCount / responsesPerPage + 1; //} return(responseGridQueryPropertiesResult); } }