Добавил поиск

This commit is contained in:
Sergey Karmanov 2023-07-29 22:57:32 +03:00
parent 2d31231c2e
commit 202ba42bb5
Signed by: serega404
GPG Key ID: B6AD49C8C835460C
8 changed files with 55 additions and 15 deletions

View File

@ -1,33 +1,34 @@
using System.Diagnostics; using System.Diagnostics;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using PaydayFrontend.Models; using PaydayFrontend.Models;
using PaydayFrontend.Services;
namespace PaydayFrontend.Controllers; namespace PaydayFrontend.Controllers;
public class HomeController : Controller public class HomeController : Controller
{ {
private readonly ILogger<HomeController> _logger; private readonly ILogger<HomeController> _logger;
private readonly IUniversityService _universityService;
public HomeController(ILogger<HomeController> logger) public HomeController(ILogger<HomeController> logger, IUniversityService universityService)
{ {
_logger = logger; _logger = logger;
_universityService = universityService;
} }
public async Task<IActionResult> Index(string searchString)
public async Task<IActionResult> Index()
{ {
using HttpClient client = new(); IEnumerable<University> universities = await _universityService.GetAllUniversity();
string json = await client.GetStringAsync( if (!String.IsNullOrEmpty(searchString))
"https://payday.zetcraft.ru/v1/public/university"); {
universities = universities.Where(s => s.Name!.ToLower().Contains(searchString.ToLower()));
}
List<University> universities = JsonConvert.DeserializeObject<List<University>>(json); return View(universities.ToList());
return View(universities);
} }
public IActionResult SecondPage() public IActionResult SecondPage([FromQuery] long universityId)
{ {
return View(); return View();
} }

View File

@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using PaydayFrontend.Data; using PaydayFrontend.Data;
using PaydayFrontend.Services;
var builder = WebApplication.CreateBuilder(args); var builder = WebApplication.CreateBuilder(args);
@ -15,6 +16,12 @@ builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.Requ
.AddEntityFrameworkStores<ApplicationDbContext>(); .AddEntityFrameworkStores<ApplicationDbContext>();
builder.Services.AddControllersWithViews(); builder.Services.AddControllersWithViews();
builder.Services.AddHttpClient("backend", client =>
{
client.DefaultRequestHeaders.Add("Accept", "application/json");
});
builder.Services.AddTransient<IUniversityService, UniversityService>();
var app = builder.Build(); var app = builder.Build();
// Configure the HTTP request pipeline. // Configure the HTTP request pipeline.

View File

@ -0,0 +1,31 @@
using System.Text.Json;
using PaydayFrontend.Models;
namespace PaydayFrontend.Services;
public interface IUniversityService
{
public Task<List<University>> GetAllUniversity();
}
public class UniversityService : IUniversityService
{
private readonly HttpClient _httpClient;
public UniversityService(HttpClient httpClient)
{
_httpClient = httpClient;
_httpClient.BaseAddress = new Uri("https://payday.zetcraft.ru");
}
public async Task<List<University>> GetAllUniversity()
{
var response = await _httpClient.GetAsync("v1/public/university");
var result = await response.Content.ReadAsStringAsync();
var university = JsonSerializer.Deserialize<List<University>>(result, new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
});
return university;
}
}

View File

@ -7,9 +7,10 @@
<section class="universe"> <section class="universe">
<div class="container container_flex"> <div class="container container_flex">
<div class="row"> <div class="row">
<div class="universe_input_block col-md-12"> <form class="universe_input_block col-md-12">
<input type="text" class="universe_input" placeholder="Введите название вуза или суза..."><img src="/img/logo/search.svg" alt="search" class="universe_search"> <input type="text" class="universe_input" name="searchString" placeholder="Введите название вуза или суза...">
</div> <input type="image" src="/img/logo/search.svg" alt="search" class="universe_search">
</form>
@{ @{
foreach (var university in Model) foreach (var university in Model)
{ {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB