Ejemplo n.º 1
0
        public async Task <IActionResult> Delete(int projectGradeId)
        {
            DeleteProjectGradeDto dto = new DeleteProjectGradeDto {
                Id = projectGradeId
            };
            ServiceResponse <string> response = await _projectGradeService.DeleteProjectGrade(dto);

            if (response.Success)
            {
                return(Ok(response));
            }
            return(NotFound(response));
        }
Ejemplo n.º 2
0
        public async Task <ServiceResponse <string> > DeleteProjectGrade(DeleteProjectGradeDto deleteProjectGradeDto)
        {
            ServiceResponse <string> response = new ServiceResponse <string>();
            User user = await _context.Users
                        .FirstOrDefaultAsync(u => u.Id == GetUserId());

            ProjectGrade projectGrade = await _context.ProjectGrades.Include(pg => pg.GradedProjectGroup)
                                        .FirstOrDefaultAsync(pg => pg.Id == deleteProjectGradeDto.Id);

            if (projectGrade == null)
            {
                response.Data    = "Not allowed";
                response.Message = "There is no project grade with this Id";
                response.Success = false;
                return(response);
            }


            if (user == null || projectGrade.GradingUserId != user.Id)
            {
                response.Data    = null;
                response.Message = "You are not authorized to delete the grade of this group";
                response.Success = false;
                return(response);
            }

            var target = Path.Combine(_hostingEnvironment.ContentRootPath, string.Format("{0}/{1}/{2}/{3}/{4}",
                                                                                         "StaticFiles/ProjectGradeFiles", projectGrade.GradedProjectGroup.AffiliatedCourseId,
                                                                                         projectGrade.GradedProjectGroup.AffiliatedSection, projectGrade.GradedProjectGroupID, user.Id));

            var filePath = Directory.GetFiles(target).FirstOrDefault();

            projectGrade.FilePath = null;
            if (filePath != null)
            {
                File.Delete(filePath);
            }
            projectGrade.HasFile = false;

            _context.ProjectGrades.Remove(projectGrade);
            await _context.SaveChangesAsync();

            response.Data    = "Successful";
            response.Message = "Project grade is successfully cancelled";
            response.Success = true;

            return(response);
        }