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)); }
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)); }
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)); }