public async Task <IActionResult> EditLmsEvent(int lmsEventId) { var lmsEvent = await _lmsEventsRepository.GetLmsEventAsync(lmsEventId); ViewBag.LmsEventTypes = _selectListRepository.GetSelectListLmsEventTypes((int)LmsEventTypeGroupsEnum.Priem, lmsEvent.LmsEventTypeId); return(View(lmsEvent)); }
/// <summary> /// Возвращает вопрос из списка заданий мероприятия, на который пользователь ещё не отвечал /// </summary> public async Task <LmsEventLmsTasksetAppUserAnswer> GetLmsTaskNotAnsweredAsync(string userName, int lmsEventId) { // Получаем мероприятие var lmsEvent = await _lmsEventRepository.GetLmsEventAsync(lmsEventId); if (lmsEvent == null) { return(null); } // Удостоверяемся, что пользователь является участником события var appUser = lmsEvent.AppUserLmsEvents .FirstOrDefault(ae => ae.AppUser.UserName == userName && ae.AppUserLmsEventUserRoleId == (int)AppUserLmsEventUserRolesEnum.Participant) .AppUser; if (appUser == null) { return(null); } //if (! lmsEvent.AppUserLmsEvents // .Any(ae => ae.AppUser.UserName == userName && // ae.AppUserLmsEventUserRoleId == (int)AppUserLmsEventUserRolesEnum.Participant)) // return null; // Удостоверяемся, что мероприятие проходит в данный момент if (!lmsEvent.IsLmsEventStarted) { return(null); } foreach (var lmsEventLmsTaskSet in lmsEvent.LmsEventLmsTaskSets) { if (lmsEventLmsTaskSet.LmsTaskSetId != 0 && lmsEventLmsTaskSet.LmsTaskSet.LmsTaskSetLmsTasks == null) { // Загружаем набор заданий var lmsTaskSet = await _lmsTaskSetRepository.GetLmsTaskSetAsync(lmsEventLmsTaskSet.LmsTaskSetId); lmsEventLmsTaskSet.LmsTaskSet = lmsTaskSet; } // Загружаем уже полученные ответы пользователя на вопросы данного мероприятия var appUserAnswers = await GetLmsEventLmsTaskSetAppUserAnswers(userName, lmsEventLmsTaskSet.LmsEventLmsTaskSetId).ToListAsync(); foreach (var lmsTaskSetLmsTask in lmsEventLmsTaskSet.LmsTaskSet.LmsTaskSetLmsTasks) { // Проверяем, отвечал ли уже пользователь на данный вопрос bool isAppUserAnswered = false; foreach (var appUserAnswer in appUserAnswers) { if (appUserAnswer.LmsTaskId == lmsTaskSetLmsTask.LmsTaskId) { isAppUserAnswered = true; break; } } if (!isAppUserAnswered) { // Если мы до сюда дошли, значит пользователь не отвечал на текущий вопрос // Формируем объект будущего ответа для передачи в представление задания var newAppUserAnswer = new LmsEventLmsTasksetAppUserAnswer { AppUserId = appUser.Id, LmsEventLmsTaskSetId = lmsEventLmsTaskSet.LmsEventLmsTaskSetId, LmsTaskId = lmsTaskSetLmsTask.LmsTaskId, LmsTask = lmsTaskSetLmsTask.LmsTask }; return(newAppUserAnswer); } } } return(null); }