From 0e2529594f6d2c7dabefcc591543b7d7a1887b11 Mon Sep 17 00:00:00 2001 From: MaxchilKH Date: Sat, 11 Jul 2020 13:18:10 +0200 Subject: [PATCH] cool --- .../Controllers/AdminController.cs | 25 ++++++++++++++++ .../Controllers/CompaniesController.cs | 2 +- .../Queries/SearchQuery.cs | 6 ++-- src/InternshipSystem.Api/Startup.cs | 2 ++ .../DatabaseFiller.cs | 29 +++++++++++++++++++ 5 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 src/InternshipSystem.Api/Controllers/AdminController.cs create mode 100644 src/InternshipSystem.Repository/DatabaseFiller.cs diff --git a/src/InternshipSystem.Api/Controllers/AdminController.cs b/src/InternshipSystem.Api/Controllers/AdminController.cs new file mode 100644 index 0000000..9994aaa --- /dev/null +++ b/src/InternshipSystem.Api/Controllers/AdminController.cs @@ -0,0 +1,25 @@ +using System.Threading.Tasks; +using Internship.Repository; +using Microsoft.AspNetCore.Mvc; + +namespace Internship.Api.Controller +{ + [ApiController] + [Route("[controller]")] + class AdminController : ControllerBase + { + public AdminController(DatabaseFiller fillerService) + { + FillerService = fillerService; + } + + public DatabaseFiller FillerService { get; } + + [HttpPost] + public async Task FillCompaniesAsync() + { + await FillerService.FillCompany(); + return Ok(); + } + } +} \ No newline at end of file diff --git a/src/InternshipSystem.Api/Controllers/CompaniesController.cs b/src/InternshipSystem.Api/Controllers/CompaniesController.cs index b3da8c3..d11c540 100644 --- a/src/InternshipSystem.Api/Controllers/CompaniesController.cs +++ b/src/InternshipSystem.Api/Controllers/CompaniesController.cs @@ -30,7 +30,7 @@ namespace InternshipSystem.Api.Controllers [ProducesResponseType(StatusCodes.Status200OK)] public async Task> SearchByNameAsync([FromQuery]SearchQuery query, CancellationToken cancellationToken) => await Context.Companies - .Where(c => c.Name.Contains(query.Query ?? "")) + .Where(c => c.Name.Contains(query.Query)) .OrderBy(o => o.Name) .Skip(query.Page * query.PerPage) .Take(query.PerPage) diff --git a/src/InternshipSystem.Api/Queries/SearchQuery.cs b/src/InternshipSystem.Api/Queries/SearchQuery.cs index 58d12df..fc49350 100644 --- a/src/InternshipSystem.Api/Queries/SearchQuery.cs +++ b/src/InternshipSystem.Api/Queries/SearchQuery.cs @@ -5,16 +5,16 @@ namespace InternshipSystem.Api.Queries /// /// Value against which collection will be queried /// - public string Query { get; set; } + public string Query { get; set; } = ""; /// /// Which part of the collections to retrieve /// - public int Page { get; set; } + public int Page { get; set; } = 0; /// /// Size of the retrieved part /// - public int PerPage { get; set; } + public int PerPage { get; set; } = 30; } } \ No newline at end of file diff --git a/src/InternshipSystem.Api/Startup.cs b/src/InternshipSystem.Api/Startup.cs index 3e2d92f..871359e 100644 --- a/src/InternshipSystem.Api/Startup.cs +++ b/src/InternshipSystem.Api/Startup.cs @@ -1,6 +1,7 @@ using System; using System.IO; using System.Reflection; +using Internship.Repository; using InternshipSystem.Repository; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -29,6 +30,7 @@ namespace InternshipSystem.Api var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); options.IncludeXmlComments(xmlPath); }) + .AddSingleton() .AddControllers() ; diff --git a/src/InternshipSystem.Repository/DatabaseFiller.cs b/src/InternshipSystem.Repository/DatabaseFiller.cs new file mode 100644 index 0000000..7f6d87a --- /dev/null +++ b/src/InternshipSystem.Repository/DatabaseFiller.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using InternshipSystem.Core; +using InternshipSystem.Repository; + +namespace Internship.Repository +{ + public class DatabaseFiller + { + public DatabaseFiller(InternshipDbContext context) + { + Context = context; + } + + public InternshipDbContext Context { get; } + + public async Task FillCompany() + { + var companies = new List + { + new Company + { + + } + }; + } + } + +} \ No newline at end of file