public async Task <ActionResult <Logic.Objects.Survey> > PutSurveyActive(Guid surveyID, [FromBody, Bind("isActive")] Models.Survey_Models.ApiSurveyActive active) { try { Logic.Objects.Survey targetSurvey = await repository.GetSurveyByID(surveyID); targetSurvey.active = active.isActive; try { await repository.UpdateSurveyByIDAsync(targetSurvey); await repository.SaveAsync(); return(Ok(await repository.GetSurveyByID(surveyID))); } catch (Exception e) { throw e.InnerException; } } catch (Exception e) { throw e.InnerException; } }
public async Task <ActionResult <ApiSurvey> > PostSurvey([FromBody, Bind("eventTypeID, surveyDescription, active")] ApiSurvey survey) { try { Logic.Objects.Survey newSurvey = new Logic.Objects.Survey() { surveyID = Guid.NewGuid(), eventTypeID = survey.eventTypeID, surveyDescription = survey.surveyDescription, active = survey.active }; try { await repository.CreateSurveyAsync(newSurvey); await repository.SaveAsync(); return(Created($"api/Survey/{newSurvey.surveyID}", newSurvey)); } catch (Exception e) { return(BadRequest(e.Message)); } } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, e.Message)); } }
public async Task UpdateSurveyByIDAsync(Logic.Objects.Survey targetSurvey) { Data.Entities.Survey contextOldSurvey = await santaContext.Surveys.FirstOrDefaultAsync(s => s.SurveyId == targetSurvey.surveyID); contextOldSurvey.SurveyDescription = targetSurvey.surveyDescription; contextOldSurvey.IsActive = targetSurvey.active; santaContext.Update(contextOldSurvey); }
/// <summary> /// Maps a logic survey to an entity survey type /// </summary> /// <param name="logicSurvey"></param> /// <returns></returns> public static Entities.Survey MapSurvey(Logic.Objects.Survey logicSurvey) { Data.Entities.Survey contextSurvey = new Entities.Survey() { SurveyId = logicSurvey.surveyID, EventTypeId = logicSurvey.eventTypeID, SurveyDescription = logicSurvey.surveyDescription, IsActive = logicSurvey.active }; return(contextSurvey); }
/// <summary> /// Maps context survey to a logic survey /// </summary> /// <param name="contextSurvey"></param> /// <returns></returns> public static Logic.Objects.Survey MapSurvey(Entities.Survey contextSurvey) { Logic.Objects.Survey logicSurvey = new Logic.Objects.Survey() { surveyID = contextSurvey.SurveyId, eventTypeID = contextSurvey.EventTypeId, surveyDescription = contextSurvey.SurveyDescription, active = contextSurvey.IsActive, surveyQuestions = contextSurvey.SurveyQuestionXref.Select(q => Mapper.MapQuestion(q.SurveyQuestion)).OrderBy(s => s.sortOrder).ToList(), removable = contextSurvey.SurveyQuestionXref.Count == 0 }; return(logicSurvey); }
public async Task <ActionResult <Logic.Objects.Survey> > GetQuestionsFromSurveyAsync(Guid surveyID) { try { Logic.Objects.Survey logicSurvey = await repository.GetSurveyByID(surveyID); return(Ok(logicSurvey.surveyQuestions)); } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, e.Message)); } }
public async Task <ActionResult <List <Logic.Objects.Option> > > GetQuestionOptionFromQuestionInSurveyAsync(Guid surveyID, Guid surveyQuestionID) { try { Logic.Objects.Survey logicSurvey = await repository.GetSurveyByID(surveyID); Logic.Objects.Question logicQuestion = logicSurvey.surveyQuestions.FirstOrDefault(q => q.questionID == surveyQuestionID); return(Ok(logicQuestion.surveyOptionList)); } catch { throw new NotImplementedException(); } }
public async Task <Logic.Objects.Survey> GetSurveyByID(Guid surveyId) { Logic.Objects.Survey logicSurvey = Mapper.MapSurvey(await santaContext.Surveys .Include(s => s.SurveyQuestionXrefs) .ThenInclude(sqx => sqx.SurveyQuestion.SurveyQuestionOptionXrefs) .ThenInclude(sqox => sqox.SurveyOption) .Include(s => s.SurveyQuestionXrefs) .ThenInclude(sqx => sqx.SurveyQuestion.SurveyQuestionXrefs) .Where(s => s.SurveyId == surveyId) .AsNoTracking() .FirstOrDefaultAsync()); return(logicSurvey); }
public async Task CreateSurveyAsync(Logic.Objects.Survey newSurvey) { Data.Entities.Survey contextSurvey = Mapper.MapSurvey(newSurvey); await santaContext.Surveys.AddAsync(contextSurvey); }