public async Task UpdateIsEvaluated_Test() { await CreateDemoUser(); // Act await UsingDbContextAsync(async context => { var johnNashUser = await context.Users.FirstOrDefaultAsync(u => u.UserName == "john.nash"); johnNashUser.ShouldNotBeNull(); using (AbpSession.Use(null, johnNashUser.Id)) { await CreateDemoMindfight(); var createdMindfight = await GetDemoMindfight(); await UpdateMindfightActiveStatus(createdMindfight); await CreateDemoTour(createdMindfight.Id); var createdTour = await GetDemoTour(); await CreateDemoQuestion(createdTour.Id); var createdQuestion = await GetDemoQuestion(); await CreateDemoTeam(johnNashUser.Id); var johnNashTeam = await GetDemoTeam(); await _registrationService.CreateRegistration(createdMindfight.Id, johnNashTeam.Id); await _registrationService.UpdateConfirmation(createdMindfight.Id, johnNashTeam.Id, true); var teamAnswerDto = new TeamAnswerDto { Answer = "demoAnswer", QuestionId = createdQuestion.Id, TeamId = johnNashTeam.Id }; await _teamAnswerService.CreateTeamAnswer( new List <TeamAnswerDto> { teamAnswerDto }, createdMindfight.Id); var teamAnswer = await _teamAnswerRepository .FirstOrDefaultAsync(x => x.TeamId == johnNashTeam.Id && x.QuestionId == createdQuestion.Id); teamAnswer.ShouldNotBeNull(); await _teamAnswerService.UpdateIsEvaluated(createdQuestion.Id, johnNashTeam.Id, "Demo", 10, true); var updatedTeamAnswer = await _teamAnswerRepository .FirstOrDefaultAsync(x => x.TeamId == johnNashTeam.Id && x.QuestionId == createdQuestion.Id && x.IsEvaluated); updatedTeamAnswer.ShouldNotBeNull(); } }); }
public async Task GetTeamResults_Test() { await CreateDemoUser(); // Act await UsingDbContextAsync(async context => { var johnNashUser = await context.Users.FirstOrDefaultAsync(u => u.UserName == "john.nash"); johnNashUser.ShouldNotBeNull(); using (AbpSession.Use(null, johnNashUser.Id)) { await CreateDemoMindfight(); var createdMindfight = await GetDemoMindfight(); await UpdateMindfightActiveStatus(createdMindfight); await CreateDemoTour(createdMindfight.Id); var createdTour = await GetDemoTour(); await CreateDemoQuestion(createdTour.Id); var createdQuestion = await GetDemoQuestion(); await CreateDemoTeam(johnNashUser.Id); var johnNashTeam = await GetDemoTeam(); await _registrationService.CreateRegistration(createdMindfight.Id, johnNashTeam.Id); await _registrationService.UpdateConfirmation(createdMindfight.Id, johnNashTeam.Id, true); var teamAnswerDto = new TeamAnswerDto { Answer = "demoAnswer", QuestionId = createdQuestion.Id, TeamId = johnNashTeam.Id }; await _teamAnswerService.CreateTeamAnswer( new List <TeamAnswerDto> { teamAnswerDto }, createdMindfight.Id); await _teamAnswerService.UpdateIsEvaluated(createdQuestion.Id, johnNashTeam.Id, "Demo", 10, true); var currentResult = await _resultService.GetTeamResults(johnNashTeam.Id); currentResult.Count.ShouldBeGreaterThanOrEqualTo(1); } }); }
public async Task <List <TeamAnswerDto> > GetAllTeamAnswers(long mindfightId, long teamId) { var user = await _userManager.Users .IgnoreQueryFilters() .Include(x => x.Team) .FirstOrDefaultAsync(u => u.Id == _userManager.AbpSession.UserId); if (user == null) { throw new UserFriendlyException("Vartotojas neegzistuoja!"); } var currentTeam = await _teamRepository .GetAll() .FirstOrDefaultAsync(x => x.Id == teamId); if (currentTeam == null) { throw new UserFriendlyException("Komanda su nurodytu id neegzistuoja!"); } var currentMindfight = await _mindfightRepository .FirstOrDefaultAsync(mindfight => mindfight.Id == mindfightId); if (currentMindfight == null) { throw new UserFriendlyException("Protmūšis su nurodytu id neegzistuoja!"); } var currentTours = await _tourRepository .GetAll() .Include(x => x.Mindfight) .ThenInclude(x => x.Evaluators) .Where(tour => tour.MindfightId == mindfightId) .ToListAsync(); var currentQuestions = await _questionRepository .GetAll() .Where(question => currentTours.Any(tour => question.TourId == tour.Id)) .ToListAsync(); if (!( currentMindfight.CreatorId == _userManager.AbpSession.UserId || _permissionChecker.IsGranted("ManageMindfights") || currentMindfight.Evaluators.Any(x => x.UserId == _userManager.AbpSession.UserId) || user.TeamId == teamId )) { throw new AbpAuthorizationException("Jūs neturite teisių gauti šiam atsakymui"); } var teamAnswers = await _teamAnswerRepository .GetAll() .Include(answer => answer.Evaluator) .Include(answer => answer.Question) .ThenInclude(question => question.Tour) .OrderBy(answer => answer.Question.Tour.OrderNumber) .Where(x => currentQuestions.Any(y => y.Id == x.QuestionId) && x.TeamId == teamId) .ToListAsync(); var teamAnswersDto = new List <TeamAnswerDto>(); foreach (var teamAnswer in teamAnswers) { var teamAnswerDto = new TeamAnswerDto(); _objectMapper.Map(teamAnswer, teamAnswerDto); teamAnswerDto.Evaluator = teamAnswer.Evaluator?.EmailAddress.ToLower(); teamAnswerDto.TourOrderNumber = teamAnswer.Question.Tour.OrderNumber; teamAnswerDto.Answer = teamAnswer.Question.Answer; teamAnswersDto.Add(teamAnswerDto); } return(teamAnswersDto); }
public async Task <TeamAnswerDto> GetTeamAnswer(long questionId, long teamId) { var user = await _userManager.Users .IgnoreQueryFilters() .Include(x => x.Team) .FirstOrDefaultAsync(u => u.Id == _userManager.AbpSession.UserId); if (user == null) { throw new UserFriendlyException("Vartotojas neegzistuoja!"); } var currentQuestion = await _questionRepository .GetAll() .Include(x => x.Tour) .ThenInclude(x => x.Mindfight) .ThenInclude(x => x.Evaluators) .FirstOrDefaultAsync(x => x.Id == questionId); if (currentQuestion == null) { throw new UserFriendlyException("Klausimas su nurodytu id neegzistuoja!"); } var currentTeam = await _teamRepository .GetAll() .FirstOrDefaultAsync(x => x.Id == teamId); if (currentTeam == null) { throw new UserFriendlyException("Komanda su nurodytu id neegzistuoja!"); } if (!(currentQuestion.Tour.Mindfight.CreatorId == _userManager.AbpSession.UserId || _permissionChecker.IsGranted("ManageMindfights") || currentQuestion.Tour.Mindfight.Evaluators.Any(x => x.UserId == _userManager.AbpSession.UserId) || user.TeamId == teamId)) { throw new AbpAuthorizationException("Jūs neturite teisių gauti šiuos atsakymus!"); } var teamAnswer = await _teamAnswerRepository .GetAll() .Include(answer => answer.Evaluator) .Include(answer => answer.Question) .ThenInclude(question => question.Tour) .FirstOrDefaultAsync(x => x.QuestionId == questionId && x.TeamId == teamId); if (teamAnswer == null) { throw new UserFriendlyException("Komandos atsakymas neegizstuoja!"); } var teamAnswerDto = new TeamAnswerDto(); _objectMapper.Map(teamAnswer, teamAnswerDto); teamAnswerDto.Evaluator = teamAnswer.Evaluator?.EmailAddress.ToLower(); teamAnswerDto.TourOrderNumber = teamAnswer.Question.Tour.OrderNumber; teamAnswerDto.Answer = currentQuestion.Answer; return(teamAnswerDto); }