Пример #1
0
        public IActionResult Save([FromBody] TeamAnswerViewModel viewModel)
        {
            if (viewModel != null && viewModel.Details != null)
            {
                foreach (var detail in viewModel.Details)
                {
                    var teamAnswer = _TeamAnswerRepository.RetrieveFirstOrDefault(ta => ta.Id == detail.Id);
                    teamAnswer.Score  = detail.Score;
                    teamAnswer.IsDone = true;
                    _TeamAnswerRepository.Update(teamAnswer);
                }
            }

            return(Ok(ServiceResponse.Ok()));
        }
Пример #2
0
        public IActionResult GetById(Guid teamId)
        {
            TeamAnswerViewModel model = null;

            var team = _TeamRepository.GetAll(t => t.Id == teamId).FirstOrDefault();

            if (team != null)
            {
                var teamAnswers = _TeamAnswerRepository.GetByTeamIdWithQuestion(teamId);

                model = new TeamAnswerViewModel
                {
                    Id        = team.Id,
                    Name      = team.Name,
                    QuestName = team.Quest?.Name,
                    Score     = teamAnswers.Where(ta => ta.IsDone).Sum(ta => ta.Score),
                    Time      = team.Quest != null ? team.Quest.Duration : 0
                };

                if (team.BeginDate.HasValue && team.FinishDate.HasValue)
                {
                    model.Time = (int)(team.FinishDate.Value - team.BeginDate.Value).TotalMinutes;
                }

                model.Details = new List <TeamAnswerViewDetails>();
                foreach (var answer in teamAnswers)
                {
                    var detailsModel = new TeamAnswerViewDetails
                    {
                        GroupName    = answer.Question?.Group?.Name,
                        QuestionId   = answer.QuestionId ?? Guid.Empty,
                        QuestionText = answer.Question?.Text,
                        Score        = answer.IsDone ? answer.Score : 0,
                        Id           = answer.Id,
                        Answer       = answer.Answer,
                        IsHintUsed   = answer.IsHintUsed
                    };
                    model.Details.Add(detailsModel);
                }
            }

            return(Ok(ServiceResponse.Ok(model)));
        }
Пример #3
0
        public IActionResult GetAll()
        {
            var model = new List <TeamAnswerViewModel>();

            var teams = _TeamRepository.GetAll();

            foreach (var team in teams)
            {
                var teamModel = new TeamAnswerViewModel
                {
                    Id        = team.Id,
                    Name      = team.Name,
                    QuestName = team.Quest?.Name,
                    Score     = _TeamAnswerRepository.GetTeamScore(team.Id),
                    Time      = 0
                };

                if (team.BeginDate.HasValue)
                {
                    if (team.FinishDate.HasValue)
                    {
                        teamModel.Time = (int)(team.FinishDate.Value - team.BeginDate.Value).TotalMinutes;
                    }
                    else
                    {
                        teamModel.Time = (int)(DateTime.UtcNow - team.BeginDate.Value).TotalMinutes;
                    }
                }

                if (team.Quest != null && teamModel.Time > team.Quest.Duration)
                {
                    teamModel.Time = team.Quest.Duration;
                }

                model.Add(teamModel);
            }

            return(Ok(ServiceResponse.Ok(model)));
        }