コード例 #1
0
        public async Task <IHttpActionResult> GetQuestionnairesAsync()
        {
            int page     = 1;
            int pageSize = 10;

            var pageHeader = Request.Headers.FirstOrDefault(a => a.Key == "os-page").Value;

            if (pageHeader != null)
            {
                int.TryParse(pageHeader.FirstOrDefault(), out page);
            }

            var pageSizeHeader = Request.Headers.FirstOrDefault(a => a.Key == "os-pagesize").Value;

            if (pageSizeHeader != null)
            {
                int.TryParse(pageSizeHeader.FirstOrDefault(), out pageSize);
            }

            var options = new GetEntitiesOptions <Questionnaire> {
                Page     = page,
                PageSize = pageSize
            };

            var result = await _questionnairesRepository.GetEntitiesAsync(options);

            HttpContext.Current.Response.AppendHeader("os-page", page.ToString());
            HttpContext.Current.Response.AppendHeader("os-pagesize", pageSize.ToString());
            HttpContext.Current.Response.AppendHeader("os-total", result.Total.ToString());

            var entities = result.Entities.Select(q => new QuestionnaireVm(q)).ToArray();

            return(Ok(entities));
        }
コード例 #2
0
        public async Task <IHttpActionResult> GetQuestionnaireAnswerAsync(string questionnaireId, string userId = null)
        {
            int?page     = null;
            int?pageSize = null;

            var pageHeader = Request.Headers.FirstOrDefault(a => a.Key == "os-page").Value;

            if (pageHeader != null)
            {
                int.TryParse(pageHeader.FirstOrDefault(), out int iPage);
                page = iPage;
            }

            var pageSizeHeader = Request.Headers.FirstOrDefault(a => a.Key == "os-pagesize").Value;

            if (pageSizeHeader != null)
            {
                int.TryParse(pageSizeHeader.FirstOrDefault(), out int iPageSize);
                pageSize = iPageSize;
            }

            var options = new GetEntitiesOptions <QuestionnaireAnswers>
            {
                Predicate = a => true,
                Page      = page,
                PageSize  = pageSize
            };

            if (userId != null)
            {
                options.Predicate = a => a.UserData.Id == userId;
            }

            var result = await _answersRepository.GetEntitiesAsync(options);

            HttpContext.Current.Response.AppendHeader("os-page", page.ToString());
            HttpContext.Current.Response.AppendHeader("os-pagesize", pageSize.ToString());
            HttpContext.Current.Response.AppendHeader("os-total", result.Total.ToString());

            return(Ok(result.Entities));
        }
コード例 #3
0
        public async Task <IHttpActionResult> CreateQuestionnaireAsync(Questionnaire questionnaire)
        {
            if (questionnaire == null)
            {
                return(BadRequest());
            }

            var options = new GetEntitiesOptions <Questionnaire>
            {
                Predicate = a => a.Name == questionnaire.Name
            };

            var inDb = await _questionnairesRepository.GetEntitiesAsync(options);

            if (inDb.Total != 0)
            {
                return(BadRequest("Un questionnaire avec ce nom existe déjà."));
            }

            await _questionnairesRepository.CreateEntityAsync(questionnaire);

            return(Created(questionnaire.Id, questionnaire));
        }