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);
        }