public async Task <OperationDetailDTO> UpdateSolutionAsync(SolutionCreateModelDTO dto) { var detail = new OperationDetailDTO <TaskDTO>(); try { if (dto == null) { detail.ErrorMessages.Add("Объект входного параметра был равен NULL."); return(detail); } var entity = await _context.Solutions.FindAsync(dto.Id); if (entity == null) { detail.ErrorMessages.Add("Решение задачи не найдено."); return(detail); } entity.ContentText = dto.ContentText; entity.CreationDate = DateTime.Now; if (String.IsNullOrEmpty(entity.ContentText)) { detail.ErrorMessages.Add("Данные решения задачи введены некорректно. Поробуйте снова."); return(detail); } _context.Solutions.Update(entity); await _context.SaveChangesAsync(); detail.Succeeded = true; return(detail); } catch (Exception e) { detail.ErrorMessages.Add(_serverErrorMessage + e.Message); return(detail); } }
public async Task <OperationDetailDTO <string> > CreateSolutionAsync(SolutionCreateModelDTO dto) { var detail = new OperationDetailDTO <string>(); try { var currentUserEntity = await GetUserFromClaimsAsync(); var studentEntity = await _context.Students .Include(s => s.User) .Where(s => s.UserId == currentUserEntity.Id) .FirstOrDefaultAsync(); if (dto != null) { var taskEntity = await _context.TaskModels.FindAsync(dto.TaskId); if (taskEntity == null) { detail.ErrorMessages.Add("Задача не найдена."); return(detail); } Solution solutionEntity = new Solution { ContentText = dto.ContentText, Student = studentEntity, TaskModel = taskEntity, CreationDate = DateTime.Now }; if (taskEntity.FinishDate > solutionEntity.CreationDate) { solutionEntity.InTime = true; } await _context.Solutions.AddAsync(solutionEntity); await _context.SaveChangesAsync(); var createdSolution = await _context.Solutions.FirstOrDefaultAsync(t => t == solutionEntity); if (createdSolution != null) { detail.Succeeded = true; detail.Data = createdSolution.Id.ToString(); } else { detail.ErrorMessages.Add(_serverErrorMessage + "При создании решения задачи что-то пошло не так."); } return(detail); } else { detail.ErrorMessages.Add("Параметр модели создаваемого решения был равен NULL."); return(detail); } } catch (Exception e) { detail.ErrorMessages.Add(_serverErrorMessage + e.Message); return(detail); } }
public async Task <IActionResult> UpdateSolution([FromBody] SolutionCreateModelDTO dto) { var res = await _studentService.UpdateSolutionAsync(dto); return(Ok(res)); }