diff --git a/Api/Controllers/HostController.cs b/Api/Controllers/HostController.cs index fa5de9c..d0b63eb 100644 --- a/Api/Controllers/HostController.cs +++ b/Api/Controllers/HostController.cs @@ -28,6 +28,19 @@ public async Task> AddNewBook(AddBookRequest request) } } + [HttpPost("AddNewCourse")] + public async Task> AddNewCourse(AddCourseRequest request) + { + try + { + return Ok(await _hostService.AddCourseAsync(request)); + } + catch (Exception exception) + { + return BadRequest(exception.Message); + } + } + [HttpDelete("RemoveBook")] public async Task> RemoveBook(string bookId) { @@ -40,5 +53,18 @@ public async Task> RemoveBook(string bookId) return BadRequest(exception.Message); } } + + [HttpDelete("RemoveCourse")] + public async Task> RemoveCourse(string courseId) + { + try + { + return Ok(await _hostService.RemoveCourseAsync(courseId)); + } + catch (Exception exception) + { + return BadRequest(exception.Message); + } + } } } diff --git a/Infrastructure/Infrastructure/Services/HostService.cs b/Infrastructure/Infrastructure/Services/HostService.cs index 435b225..a925e18 100644 --- a/Infrastructure/Infrastructure/Services/HostService.cs +++ b/Infrastructure/Infrastructure/Services/HostService.cs @@ -2,6 +2,7 @@ using Application.Repositories; using Application.Services; using Domain.Models; +using System.Net; namespace Infrastructure.Services; @@ -51,7 +52,9 @@ public async Task AddCourseAsync(AddCourseRequest request) Tags = request.Tags, }; - var result = await + var result = await _unitOfWork.WriteCourseRepository.AddAsync(newCourse); + await _unitOfWork.WriteCourseRepository.SaveChangesAsync(); + return result; } public async Task BanUser(string userId) @@ -80,8 +83,10 @@ public async Task RemoveBookAsync(string bookId) return result; } - public Task RemoveCourseAsync(string courseId) + public async Task RemoveCourseAsync(string courseId) { - throw new NotImplementedException(); + var result = await _unitOfWork.WriteCourseRepository.RemoveAsync(courseId); + await _unitOfWork.WriteCourseRepository.SaveChangesAsync(); + return result; } } diff --git a/Infrastructure/Persistence/Repositories/UnitOfWork.cs b/Infrastructure/Persistence/Repositories/UnitOfWork.cs index cba037c..e36dbe0 100644 --- a/Infrastructure/Persistence/Repositories/UnitOfWork.cs +++ b/Infrastructure/Persistence/Repositories/UnitOfWork.cs @@ -7,12 +7,14 @@ namespace Persistence.Repositories; public class UnitOfWork : IUnitOfWork { - public UnitOfWork(IReadBookRepository readBookRepository, IWriteBookRepository writeBookRepository, IReadUserRepository readUserRepository, IWriteUserRepository writeUserRepository) + public UnitOfWork(IReadBookRepository readBookRepository, IWriteBookRepository writeBookRepository, IReadUserRepository readUserRepository, IWriteUserRepository writeUserRepository, IReadCourseRepository readCourseRepository, IWriteCourseRepository writeCourseRepository) { ReadBookRepository = readBookRepository; WriteBookRepository = writeBookRepository; ReadUserRepository = readUserRepository; WriteUserRepository = writeUserRepository; + ReadCourseRepository = readCourseRepository; + WriteCourseRepository = writeCourseRepository; } public IReadBookRepository ReadBookRepository { get; }