public async Task <Result <UserAnswerModel> > SpecificAnswers(ExceptionAnswerModel model) { var answer = await _repository.FirstOrDefaultAsNoTrackingAsync <Answer>(a => a.Id == model.Answers.FirstOrDefault(), a => a.Question.Survey); var usersurvey = await _repository.FirstOrDefaultAsync <UserSurvey>(u => u.SurveyId == answer.Data.Question.Survey.Id && u.UserId == generalDataService.User.Id, u => u.Survey.Question.Select(q => q.Answer.Select(a => a.Action)), u => u.UserAnswer.Select(ua => ua.Answer.Question.Answer), u => u.UserAnswer.Select(ua => ua.Answer.Question.Survey)); var answers = usersurvey.Data.UserAnswer .Where(ua => ua.Answer.Question.Number >= 16 && ua.Answer.Question.Number <= 22).ToList(); _repository.RemoveRange(answers); var questions = usersurvey.Data.Survey.Question.Where(q => q.Number >= 16 && q.Number <= 22).ToList(); var userAnswers = questions.Select(q => new UserAnswer { Id = Guid.NewGuid(), Answer = q.Answer.FirstOrDefault(a => model.Answers.Contains(a.Id)), UserSurveyId = usersurvey.Data.Id }).ToList(); userAnswers.ForEach(ua => usersurvey.Data.UserAnswer.Add(ua)); await _repository.CommitAsync(); return(Result <UserAnswerModel> .Successful(new UserAnswerModel { Question = CalculateNextQuestion( usersurvey.Data.UserAnswer.OrderBy(ua => ua.Answer.Question.Number).Reverse().FirstOrDefault() ?.Answer, usersurvey.Data), })); }
public async Task <Result <UserAnswerModel> > SpecificAnswers(ExceptionAnswerModel model) => await _userSurveyBiz.SpecificAnswers(model);