Доделал вторую вкладку
All checks were successful
Create and publish a Docker image / build-and-push-image (push) Successful in 8s
All checks were successful
Create and publish a Docker image / build-and-push-image (push) Successful in 8s
This commit is contained in:
parent
385f7dc6e7
commit
8a6f3ac806
@ -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()
|
||||||
|
@ -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; }
|
||||||
}
|
}
|
7
PaydayFrontend/Models/UniversityDirectionsViewModel.cs
Normal file
7
PaydayFrontend/Models/UniversityDirectionsViewModel.cs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
namespace PaydayFrontend.Models;
|
||||||
|
|
||||||
|
public class UniversityDirectionsViewModel
|
||||||
|
{
|
||||||
|
public University University { get; set; }
|
||||||
|
public List<Direction> Directions { get; set; }
|
||||||
|
}
|
@ -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
|
||||||
@ -29,12 +30,23 @@ 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
|
||||||
});
|
});
|
||||||
|
@ -1,38 +1,40 @@
|
|||||||
|
@model UniversityDirectionsViewModel
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Выбор направления";
|
ViewData["Title"] = "Выбор направления";
|
||||||
}
|
}
|
||||||
<section class="navigation" id="second">
|
|
||||||
<div class="container container_flex flex_column">
|
<section class="navigation" id="second">
|
||||||
<div class="row" id="navigation_row_block">
|
<div class="container container_flex flex_column">
|
||||||
|
<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">
|
||||||
</div>
|
<input type="text" class="navigation_input" placeholder="Введите код или название направления"><img src="/img/logo/search.svg" alt="search" class="navigation_search">
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="row row-cols-lg-1 g-5 g-lg-3">
|
|
||||||
<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 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="row row-cols-lg-1 g-5 g-lg-3">
|
||||||
<div class="navigation_slid">
|
@{
|
||||||
<span class="navigation_slid_disable"></span>
|
foreach (var direction in Model.Directions)
|
||||||
<span class="navigation_slid_active"></span>
|
{
|
||||||
<span class="navigation_slid_disable"></span>
|
<div class="col-md-12">
|
||||||
<span class="navigation_slid_disable"></span>
|
<div class="navigation_info navigation_info_text p-3">@direction.Code - @direction.Name<span class="navigation_cost">От 5600 в мес.</span> 10+ Банков</div>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</div>
|
||||||
|
<div class="navigation_choise">
|
||||||
|
<div class="navigation_slid">
|
||||||
|
<span class="navigation_slid_disable"></span>
|
||||||
|
<span class="navigation_slid_active"></span>
|
||||||
|
<span class="navigation_slid_disable"></span>
|
||||||
|
<span class="navigation_slid_disable"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
@ -1,7 +1,7 @@
|
|||||||
@model List<University>
|
@model List<University>
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Home Page";
|
ViewData["Title"] = "Доступное образование";
|
||||||
}
|
}
|
||||||
|
|
||||||
<section class="universe">
|
<section class="universe">
|
||||||
|
2
PaydayFrontend/wwwroot/css/bootstrap.min.css
vendored
2
PaydayFrontend/wwwroot/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
@ -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
|
||||||
}
|
}
|
||||||
|
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
Loading…
x
Reference in New Issue
Block a user