Beispiel #1
0
        private Page <FormulateSubmission> GetPagedResults(GetStoredDataRequest request, Guid formId)
        {
            using (var scope = ScopeProvider.CreateScope())
            {
                var dbResults = scope.Database.Page <FormulateSubmission>(request.Page, request.ItemsPerPage,
                                                                          "WHERE FormId = @0 ORDER BY SequenceId DESC", formId);

                return(dbResults);
            }
        }
Beispiel #2
0
        public object GetSubmissions([FromUri] GetStoredDataRequest request)
        {
            // Variables.
            var formId     = GuidHelper.GetGuid(request.FormId);
            var form       = Forms.Retrieve(formId);
            var fieldsById = form.Fields.ToDictionary(x => x.Id, x => x);
            var db         = ApplicationContext.DatabaseContext.Database;
            var dbResults  = db.Page <FormulateSubmission>(request.Page, request.ItemsPerPage,
                                                           "WHERE FormId = @0 ORDER BY SequenceId DESC", formId);
            var items = dbResults.Items;


            // If the form was not found, indicate an error.
            if (form == null)
            {
                return(new
                {
                    Success = false
                              //TODO: Failure message?
                });
            }


            // Return form submissions.
            return(new
            {
                Success = true,
                Total = (int)dbResults.TotalItems,
                Submissions = items.Select(x => new
                {
                    GeneratedId = GuidHelper.GetString(x.GeneratedId),
                    CreationDate = x.CreationDate.AddMinutes(-request.TimezoneOffset).ToString(),
                    Url = x.Url,
                    PageId = x.PageId,
                    Fields = GetDataForFields(x.DataValues, fieldsById, form),
                    Files = GetDataForFiles(x.FileValues, fieldsById, form)
                }).ToArray()
            });
        }