diff --git a/src/InternshipSystem.Api/Controllers/CourseController.cs b/src/InternshipSystem.Api/Controllers/CourseController.cs new file mode 100644 index 0000000..7707015 --- /dev/null +++ b/src/InternshipSystem.Api/Controllers/CourseController.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using InternshipSystem.Api.Security; +using InternshipSystem.Repository; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace InternshipSystem.Api.Controllers +{ + [ApiController] + [Route("management/course")] + public class CourseController : ControllerBase + { + private InternshipDbContext Context { get; } + + public CourseController(InternshipDbContext context) + { + Context = context; + } + + [HttpGet] + [Authorize(Policy = Policies.IsOverseer)] + public async Task>> GetCourses(CancellationToken cancellationToken) => + throw new NotImplementedException(); + + [HttpGet("{courseId}")] + [Authorize(Policy = Policies.IsOverseer)] + public async Task> GetCourse(long courseId, CancellationToken cancellationToken) => + throw new NotImplementedException(); + + [HttpPut] + [Authorize(Policy = Policies.IsOverseer)] + public async Task UpsertCompany([FromBody] CourseForm courseForm, CancellationToken cancellationToken) => + throw new NotImplementedException(); + + [HttpDelete("{courseId}")] + [Authorize(Policy = Policies.IsOverseer)] + public async Task DeleteCompany(long courseId, CancellationToken cancellationToken) => + throw new NotImplementedException(); + } + + public class CourseForm + { + } + + public class CourseResult + { + } +} \ No newline at end of file diff --git a/src/InternshipSystem.Api/Controllers/EditionManagementController.cs b/src/InternshipSystem.Api/Controllers/EditionManagementController.cs index f4ce290..245f3d8 100644 --- a/src/InternshipSystem.Api/Controllers/EditionManagementController.cs +++ b/src/InternshipSystem.Api/Controllers/EditionManagementController.cs @@ -38,6 +38,7 @@ namespace InternshipSystem.Api.Controllers public async Task>> GetEditions([FromQuery] EditionSearchQuery searchQuery, CancellationToken token) => await Context.Editions .Include(e => e.Course) + .Where(p => !searchQuery.Course.HasValue || p.Course.Id == searchQuery.Course) .ProjectTo(Mapper.ConfigurationProvider) .Skip(searchQuery.Page * searchQuery.PerPage) .Take(searchQuery.PerPage) diff --git a/src/InternshipSystem.Api/Queries/SearchQuery/EditionSearchQuery.cs b/src/InternshipSystem.Api/Queries/SearchQuery/EditionSearchQuery.cs index 3495ecf..62d919f 100644 --- a/src/InternshipSystem.Api/Queries/SearchQuery/EditionSearchQuery.cs +++ b/src/InternshipSystem.Api/Queries/SearchQuery/EditionSearchQuery.cs @@ -2,6 +2,6 @@ { public class EditionSearchQuery : SearchQuery { - + public long? Course { get; set; } } } \ No newline at end of file diff --git a/src/InternshipSystem.Core/Entity/Course.cs b/src/InternshipSystem.Core/Entity/Course.cs index 68d15ba..9bce090 100644 --- a/src/InternshipSystem.Core/Entity/Course.cs +++ b/src/InternshipSystem.Core/Entity/Course.cs @@ -4,5 +4,6 @@ { public long Id { get; set; } public string Name { get; set; } + public string NameEng { get; set; } } } \ No newline at end of file diff --git a/src/InternshipSystem.Repository/InternshipDbContext.cs b/src/InternshipSystem.Repository/InternshipDbContext.cs index 7f3a294..f12709f 100644 --- a/src/InternshipSystem.Repository/InternshipDbContext.cs +++ b/src/InternshipSystem.Repository/InternshipDbContext.cs @@ -12,6 +12,7 @@ namespace InternshipSystem.Repository public DbSet StaticPages { get; set; } public DbSet InternshipTypes { get; set; } public DbSet Students { get; set; } + public DbSet Courses { get; set; } public InternshipDbContext(DbContextOptions options) : base(options)