Skip to content
Snippets Groups Projects
Commit 57fbe09d authored by Lucca Santangelo Dodera's avatar Lucca Santangelo Dodera
Browse files

Merge branch 'feature/Courses' into 'develop'

crud Courses

See merge request !9
parents d195f65e a01b6595
No related branches found
No related tags found
3 merge requests!20merge from develop,!16Feature/chat signalr,!9crud Courses
......@@ -85,5 +85,73 @@ namespace Tsi1.Api.Controllers
return Ok();
}
[Authorize(Roles = UserTypes.Student + ", " + UserTypes.Professor + ", " + UserTypes.FacultyAdmin)]
[HttpGet("GetAll")]
public async Task<IActionResult> GetAll()
{
var tenantId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "TenantId").Value);
var result = await _courseService.GetAll(tenantId);
if (result.HasError)
{
return BadRequest(result.Message);
}
return Ok(result.Data);
}
[Authorize(Roles = UserTypes.UdelarAdmin)]
[HttpGet("GetAll/{tenantId}")]
public async Task<IActionResult> GetAll(int tenantId)
{
var result = await _courseService.GetAll(tenantId);
if (result.HasError)
{
return BadRequest(result.Message);
}
return Ok(result.Data);
}
[Authorize(Roles = UserTypes.Professor + ", " + UserTypes.FacultyAdmin)]
[HttpPut("Modify/{courseId}")]
public async Task<IActionResult> Modify(int courseId, CourseCreateDto courseDto)
{
var result = await _courseService.Modify(courseId, courseDto);
if (result.HasError)
{
return BadRequest(result.Message);
}
if (result.Data == false)
{
return NotFound(result.Message);
}
return Ok();
}
[Authorize(Roles = UserTypes.FacultyAdmin)]
[HttpDelete("Delete/{courseId}")]
public async Task<IActionResult> Delete(int courseId)
{
var result = await _courseService.Delete(courseId);
if (result.HasError)
{
return BadRequest(result.Message);
}
if (result.Data == false)
{
return NotFound(result.Message);
}
return Ok();
}
}
}
......@@ -42,7 +42,7 @@ namespace Tsi1.BusinessLayer.Helpers
CreateMap<UserRegisterDto, User>();
CreateMap<StudentPreviewDto, Student>();
CreateMap<ProfessorPreviewDto, Professor>();
CreateMap<CourseCreateDto, Course>();
CreateMap<CourseCreateDto, Course>().ForMember(x => x.TenantId, opt => opt.Ignore());
CreateMap<CoursePreviewDto, Course>();
CreateMap<TenantPreviewDto, Tenant>();
CreateMap<TenantCreateDto, Tenant>();
......
......@@ -17,5 +17,11 @@ namespace Tsi1.BusinessLayer.Interfaces
Task<ServiceResult<bool>> Matriculate(int userId, int courseId);
Task<ServiceResult<bool>> AddProfessorToCourse(ProfessorCourseDto professorCourseDto);
Task<ServiceResult<List<CoursePreviewDto>>> GetAll(int tenantId);
Task<ServiceResult<bool>> Modify(int courseId, CourseCreateDto courseDto);
Task<ServiceResult<bool>> Delete(int courseId);
}
}
......@@ -181,5 +181,64 @@ namespace Tsi1.BusinessLayer.Services
return result;
}
public async Task<ServiceResult<List<CoursePreviewDto>>> GetAll(int tenantId)
{
var result = new ServiceResult<List<CoursePreviewDto>>();
var courses = await _context.Courses
.Where(x => x.TenantId == tenantId)
.ToListAsync();
var coursesDto = _mapper.Map<List<CoursePreviewDto>>(courses);
result.Data = coursesDto;
return result;
}
public async Task<ServiceResult<bool>> Modify(int courseId, CourseCreateDto courseDto)
{
var result = new ServiceResult<bool>();
var course = await _context.Courses
.FirstOrDefaultAsync(x => x.Id == courseId);
if (course == null)
{
result.Message = string.Format(ErrorMessages.CourseDoesNotExist, courseId);
return result;
}
_mapper.Map(courseDto, course);
await _context.SaveChangesAsync();
result.Data = true;
return result;
}
public async Task<ServiceResult<bool>> Delete(int courseId)
{
var result = new ServiceResult<bool>();
var course = await _context.Courses
.FirstOrDefaultAsync(x => x.Id == courseId);
if (course == null)
{
result.Message = string.Format(ErrorMessages.CourseDoesNotExist, courseId);
return result;
}
_context.Courses.Remove(course);
await _context.SaveChangesAsync();
result.Data = true;
return result;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment