Доделал вторую вкладку
All checks were successful
Create and publish a Docker image / build-and-push-image (push) Successful in 8s

This commit is contained in:
Sergey Karmanov 2023-07-30 04:06:42 +03:00
parent 385f7dc6e7
commit 8a6f3ac806
Signed by: serega404
GPG Key ID: B6AD49C8C835460C
10 changed files with 221 additions and 45 deletions

View File

@ -18,26 +18,30 @@ public class HomeController : Controller
public async Task<IActionResult> Index(string searchString) public async Task<IActionResult> Index(string searchString)
{ {
IEnumerable<University> universities = await _universityService.GetAllUniversity(); List<University> universities = await _universityService.GetAllUniversity();
if (!String.IsNullOrEmpty(searchString)) if (!String.IsNullOrEmpty(searchString))
{ {
universities = universities.Where(s => s.Name!.ToLower().Contains(searchString.ToLower())); universities = universities.Where(s => s.Name!.ToLower().Contains(searchString.ToLower()) || s.FullName!.ToLower().Contains(searchString.ToLower())).ToList();
} }
// Выдача университетов в случайном порядке
var random = new Random(DateTime.Now.Millisecond);
universities = universities.OrderBy(x => random.Next()).ToList();
return View(universities.ToList()); return View(universities.ToList());
} }
[Route("Directions")] [Route("Directions")]
public IActionResult Directions(long universityId) public async Task<IActionResult> Directions(long universityId)
{ {
Console.WriteLine(universityId);
if (universityId == 0) if (universityId == 0)
return RedirectToAction("Index"); return RedirectToAction("Index");
var answer = new UniversityDirectionsViewModel();
answer.University = await _universityService.GetUniversityById(universityId);
return View(); answer.Directions = await _universityService.GetDirectionsByUniversityId(universityId);
return View(answer);
} }
public IActionResult Credits() public IActionResult Credits()

View File

@ -8,4 +8,5 @@ public class Direction
public string Name { get; set; } public string Name { get; set; }
public string Url { get; set; } public string Url { get; set; }
public int PlaceCost { get; set; } public int PlaceCost { get; set; }
public string UniversityName { get; set; }
} }

View File

@ -0,0 +1,7 @@
namespace PaydayFrontend.Models;
public class UniversityDirectionsViewModel
{
public University University { get; set; }
public List<Direction> Directions { get; set; }
}

View File

@ -6,7 +6,8 @@ namespace PaydayFrontend.Services;
public interface IUniversityService public interface IUniversityService
{ {
public Task<List<University>> GetAllUniversity(); public Task<List<University>> GetAllUniversity();
public Task<List<University>> GetDirectionsByUniversityId(); public Task<List<Direction>> GetDirectionsByUniversityId(long universityId);
public Task<University> GetUniversityById(long id);
} }
public class UniversityService : IUniversityService public class UniversityService : IUniversityService
@ -30,11 +31,22 @@ public class UniversityService : IUniversityService
return university; return university;
} }
public async Task<List<University>> GetDirectionsByUniversityId() public async Task<List<Direction>> GetDirectionsByUniversityId(long universityId)
{ {
var response = await _httpClient.GetAsync("v1/public/university"); var response = await _httpClient.GetAsync($"v1/public/university/{universityId}/directions");
var result = await response.Content.ReadAsStringAsync(); var result = await response.Content.ReadAsStringAsync();
var university = JsonSerializer.Deserialize<List<University>>(result, new JsonSerializerOptions var directions = JsonSerializer.Deserialize<List<Direction>>(result, new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
});
return directions;
}
public async Task<University> GetUniversityById(long id)
{
var response = await _httpClient.GetAsync("v1/public/university/" + id);
var result = await response.Content.ReadAsStringAsync();
var university = JsonSerializer.Deserialize<University>(result, new JsonSerializerOptions
{ {
PropertyNameCaseInsensitive = true PropertyNameCaseInsensitive = true
}); });

View File

@ -1,31 +1,33 @@
@model UniversityDirectionsViewModel
@{ @{
ViewData["Title"] = "Выбор направления"; ViewData["Title"] = "Выбор направления";
} }
<section class="navigation" id="second"> <section class="navigation" id="second">
<div class="container container_flex flex_column"> <div class="container container_flex flex_column">
<div class="row" id="navigation_row_block"> <div class="row" id="navigation_row_block">
<div class="navigation_fixed_background"></div> <div class="navigation_fixed_background"></div>
<div class="navigation_banks col-md-12" id="navigation"> <div class="navigation_banks col-md-12" id="navigation">
<div class="navigation_banks_univer" id="universe">СпбГУ</div> <div class="navigation_banks_univer" id="universe">@Model.University.Name</div>
<div id="navigation_row_block" class="navigation_input_block"><input type="text" class="navigation_input" placeholder="Введите код или название направления"><img src="/img/logo/search.svg" alt="search" class="navigation_search"></div> <div id="navigation_row_block" class="navigation_input_block">
<input type="text" class="navigation_input" placeholder="Введите код или название направления"><img src="/img/logo/search.svg" alt="search" class="navigation_search">
</div>
</div> </div>
</div> </div>
<div class="row row-cols-lg-1 g-5 g-lg-3"> <div class="row row-cols-lg-1 g-5 g-lg-3">
@{
foreach (var direction in Model.Directions)
{
<div class="col-md-12"> <div class="col-md-12">
<div class="navigation_info navigation_info_text p-3">09.03.04 - Программная инженерия <span class="navigation_cost">От 5600 в мес.</span> 10+ Банков</div> <div class="navigation_info navigation_info_text p-3">@direction.Code - @direction.Name<span class="navigation_cost">От 5600 в мес.</span> 10+ Банков</div>
</div>
<div class="col-md-12">
<div class="navigation_info navigation_info_text p-3">09.03.04 - Программная инженерия <span class="navigation_cost">От 5600 в мес.</span> 10+ Банков</div>
</div>
<div class="col-md-12">
<div class="navigation_info navigation_info_text p-3">09.03.04 - Программная инженерия <span class="navigation_cost">От 5600 в мес.</span> 10+ Банков</div>
</div>
<div class="col-md-12">
<div class="navigation_info navigation_info_text p-3">09.03.04 - Программная инженерия <span class="navigation_cost">От 5600 в мес.</span> 10+ Банков</div>
</div>
</div> </div>
}
}
</div>
</div> </div>
<div class="navigation_choise"> <div class="navigation_choise">
<div class="navigation_slid"> <div class="navigation_slid">

View File

@ -1,7 +1,7 @@
@model List<University> @model List<University>
@{ @{
ViewData["Title"] = "Home Page"; ViewData["Title"] = "Доступное образование";
} }
<section class="universe"> <section class="universe">

File diff suppressed because one or more lines are too long

View File

@ -56,7 +56,7 @@ header {
.menu_project_name_text { .menu_project_name_text {
color: #20d37d; color: #20d37d;
font-size: 48px; font-size: 3.5vh;
font-style: normal; font-style: normal;
font-weight: 500 font-weight: 500
} }
@ -714,7 +714,7 @@ header {
-webkit-box-align: center; -webkit-box-align: center;
-ms-flex-align: center; -ms-flex-align: center;
align-items: center; align-items: center;
height: 50px; height: 53px; /*TODO: Скрывает последний результат*/
width: 100%; width: 100%;
bottom: 50px bottom: 50px
} }

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

File diff suppressed because one or more lines are too long