public async Task <IActionResult> CreateNewReport(ProjectScheduleReport projectScheduleReport, int projectId) { var studentId = _userManager.GetUserId(User); if (IsValidReport(projectScheduleReport, studentId)) { projectScheduleReport.StudentId = studentId; projectScheduleReport.CreatedDate = DateTime.Now; _context.ProjectScheduleReports.Add(projectScheduleReport); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Details), new { id = projectId })); } return(BadRequest()); }
private bool IsValidReport(ProjectScheduleReport projectScheduleReport, string studentId) { var projectSchedule = _context.ProjectSchedules.Find(projectScheduleReport.ProjectScheduleId); if (projectSchedule == null) { return(false); } if (projectSchedule.ExpiredDate.Date < DateTime.Now.Date) { return(false); } var isValidStudent = _context.ProjectMembers.Any(pm => pm.ProjectId == projectSchedule.ProjectId && pm.StudentId == studentId); if (!isValidStudent) { return(false); } return(true); }