Skip to content
Snippets Groups Projects
Commit 5948f2f4 authored by esantangelo's avatar esantangelo
Browse files

add create and delete folders

parent c9fdda18
Branches
No related tags found
3 merge requests!20merge from develop,!16Feature/chat signalr,!15Feature/upload file
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
......@@ -19,9 +20,12 @@ namespace Tsi1.Api.Controllers
{
private readonly ICourseService _courseService;
public CourseController(ICourseService courseService)
private readonly IFileService _fileService;
public CourseController(ICourseService courseService, IFileService fileService)
{
_courseService = courseService;
_fileService = fileService;
}
[Authorize(Roles = UserTypes.Student + ", " + UserTypes.Professor)]
......@@ -54,6 +58,10 @@ namespace Tsi1.Api.Controllers
return BadRequest(result.Message);
}
var path = Path.Combine(tenantId.ToString(), result.Data.Id.ToString());
_fileService.CreateFolder(path);
return Ok();
}
......@@ -197,11 +205,15 @@ namespace Tsi1.Api.Controllers
return BadRequest(result.Message);
}
if (result.Data == false)
if (result.Data == null)
{
return NotFound(result.Message);
}
var path = Path.Combine(result.Data.TenantId.ToString(), result.Data.Id.ToString());
_fileService.DeleteFolder(path);
return Ok();
}
......
......@@ -17,9 +17,12 @@ namespace Tsi1.Api.Controllers
{
private readonly ITenantService _tenantService;
public TenantController(ITenantService tenantService)
private readonly IFileService _fileService;
public TenantController(ITenantService tenantService, IFileService fileService)
{
_tenantService = tenantService;
_fileService = fileService;
}
[Authorize(Roles = UserTypes.UdelarAdmin)]
......@@ -47,6 +50,8 @@ namespace Tsi1.Api.Controllers
return BadRequest(result.Message);
}
_fileService.CreateFolder(result.Data.Id.ToString());
return Ok(result.Data);
}
......@@ -85,6 +90,8 @@ namespace Tsi1.Api.Controllers
return NotFound(result.Message);
}
_fileService.DeleteFolder(tenantId.ToString());
return Ok();
}
}
......
......@@ -45,7 +45,7 @@ namespace Tsi1.BusinessLayer.Helpers
CreateMap<UserModifyDto, User>();
CreateMap<StudentPreviewDto, Student>();
CreateMap<ProfessorPreviewDto, Professor>();
CreateMap<CourseCreateDto, Course>().ForMember(x => x.TenantId, opt => opt.Ignore());
CreateMap<CourseCreateDto, Course>();
CreateMap<CoursePreviewDto, Course>();
CreateMap<TenantPreviewDto, Tenant>();
CreateMap<TenantCreateDto, Tenant>();
......
......@@ -22,7 +22,7 @@ namespace Tsi1.BusinessLayer.Interfaces
Task<ServiceResult<bool>> Modify(int courseId, CourseCreateDto courseDto);
Task<ServiceResult<bool>> Delete(int courseId);
Task<ServiceResult<Course>> Delete(int courseId);
Task<ServiceResult<bool>> DropOutFromCourse(int userId, int courseId);
......
......@@ -10,8 +10,10 @@ namespace Tsi1.BusinessLayer.Interfaces
{
public interface IFileService
{
//Task<ServiceResult<FileDto>> SaveFile(IFormFile file);
Task<ServiceResult<FileDto>> Create(IFormFile file, int tenantId, int courseId);
void CreateFolder(string folderPath);
void DeleteFolder(string folderPath);
}
}
......@@ -11,6 +11,8 @@ namespace Tsi1.BusinessLayer.Interfaces
{
Task<ServiceResult<int>> GetByName(string tenantName);
Task<ServiceResult<int>> GetById(int tenantId);
Task<ServiceResult<List<TenantPreviewDto>>> GetAll();
Task<ServiceResult<TenantPreviewDto>> Create(TenantCreateDto newTenant);
......
......@@ -219,9 +219,9 @@ namespace Tsi1.BusinessLayer.Services
return result;
}
public async Task<ServiceResult<bool>> Delete(int courseId)
public async Task<ServiceResult<Course>> Delete(int courseId)
{
var result = new ServiceResult<bool>();
var result = new ServiceResult<Course>();
var course = await _context.Courses
.FirstOrDefaultAsync(x => x.Id == courseId);
......@@ -236,7 +236,7 @@ namespace Tsi1.BusinessLayer.Services
await _context.SaveChangesAsync();
result.Data = true;
result.Data = course;
return result;
}
......
......@@ -121,5 +121,19 @@ namespace Tsi1.BusinessLayer.Services
return result;
}
public void CreateFolder(string folderPath)
{
var path = Path.Combine(_path, folderPath);
Directory.CreateDirectory(path);
}
public void DeleteFolder(string folderPath)
{
var path = Path.Combine(_path, folderPath);
Directory.Delete(path);
}
}
}
......@@ -122,5 +122,24 @@ namespace Tsi1.BusinessLayer.Services
return result;
}
public async Task<ServiceResult<int>> GetById(int tenantId)
{
var result = new ServiceResult<int>();
var tenant = await _context.Tenants
.FirstOrDefaultAsync(x => x.Id == tenantId);
if (tenant == null)
{
result.HasError = true;
result.Message = string.Format(ErrorMessages.TenantDoesNotExist, tenantId);
return result;
}
result.Data = tenant.Id;
return result;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment