Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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));
            }
        }
Esempio n. 3
0
        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);
 }
Esempio n. 6
0
        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));
            }
        }
Esempio n. 7
0
        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();
            }
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
 public async Task CreateSurveyAsync(Logic.Objects.Survey newSurvey)
 {
     Data.Entities.Survey contextSurvey = Mapper.MapSurvey(newSurvey);
     await santaContext.Surveys.AddAsync(contextSurvey);
 }