Сделал третью страницу
All checks were successful
Create and publish a Docker image / build-and-push-image (push) Successful in 24s
All checks were successful
Create and publish a Docker image / build-and-push-image (push) Successful in 24s
This commit is contained in:
parent
bfea515ec2
commit
9f5c2c4d47
@ -40,7 +40,7 @@ public class HomeController : Controller
|
|||||||
if (universityId == 0)
|
if (universityId == 0)
|
||||||
return RedirectToAction("Index");
|
return RedirectToAction("Index");
|
||||||
|
|
||||||
var answer = new UniversityDirectionsViewModel();
|
var answer = new DirectionsViewModel();
|
||||||
answer.University = await _universityService.GetUniversityById(universityId);
|
answer.University = await _universityService.GetUniversityById(universityId);
|
||||||
answer.Directions = await _universityService.GetDirectionsByUniversityId(universityId);
|
answer.Directions = await _universityService.GetDirectionsByUniversityId(universityId);
|
||||||
answer.SearchString = searchString;
|
answer.SearchString = searchString;
|
||||||
@ -54,9 +54,17 @@ public class HomeController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Route("Credits")]
|
[Route("Credits")]
|
||||||
public IActionResult Credits()
|
public async Task<IActionResult> Credits(long universityId, long directionId, string searchString)
|
||||||
{
|
{
|
||||||
return View();
|
if (universityId == 0 || directionId == 0)
|
||||||
|
return RedirectToAction("Index");
|
||||||
|
|
||||||
|
var answer = new CreditsViewModel();
|
||||||
|
answer.University = await _universityService.GetUniversityById(universityId);;
|
||||||
|
answer.Direction = await _universityService.GetDirectionsById(directionId);
|
||||||
|
answer.Offers = await _universityService.GetOffers(directionId);
|
||||||
|
|
||||||
|
return View(answer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IActionResult Privacy()
|
public IActionResult Privacy()
|
||||||
|
8
PaydayFrontend/Models/CreditsViewModel.cs
Normal file
8
PaydayFrontend/Models/CreditsViewModel.cs
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
namespace PaydayFrontend.Models;
|
||||||
|
|
||||||
|
public class CreditsViewModel
|
||||||
|
{
|
||||||
|
public University University { get; set; }
|
||||||
|
public Direction Direction { get; set; }
|
||||||
|
public IEnumerable<Offer> Offers { get; set; }
|
||||||
|
}
|
@ -1,12 +1,12 @@
|
|||||||
namespace PaydayFrontend.Models;
|
namespace PaydayFrontend.Models;
|
||||||
|
|
||||||
public class UniversityDirectionsViewModel
|
public class DirectionsViewModel
|
||||||
{
|
{
|
||||||
public UniversityDirectionsViewModel()
|
public DirectionsViewModel()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public UniversityDirectionsViewModel(University university, List<Direction> directions, string searchString)
|
public DirectionsViewModel(University university, List<Direction> directions, string searchString)
|
||||||
{
|
{
|
||||||
University = university;
|
University = university;
|
||||||
Directions = directions;
|
Directions = directions;
|
10
PaydayFrontend/Models/Offer.cs
Normal file
10
PaydayFrontend/Models/Offer.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
namespace PaydayFrontend.Models;
|
||||||
|
|
||||||
|
public class Offer
|
||||||
|
{
|
||||||
|
public long DirectionId { get; set; }
|
||||||
|
public string BankIconUrl { get; set; }
|
||||||
|
public string BankName { get; set; }
|
||||||
|
public float BankPercent { get; set; }
|
||||||
|
public long BankId { get; set; }
|
||||||
|
}
|
@ -8,6 +8,8 @@ public interface IUniversityService
|
|||||||
public Task<List<University>> GetAllUniversity();
|
public Task<List<University>> GetAllUniversity();
|
||||||
public Task<List<Direction>> GetDirectionsByUniversityId(long universityId);
|
public Task<List<Direction>> GetDirectionsByUniversityId(long universityId);
|
||||||
public Task<University> GetUniversityById(long id);
|
public Task<University> GetUniversityById(long id);
|
||||||
|
public Task<IEnumerable<Offer>> GetOffers(long directionId);
|
||||||
|
public Task<Direction> GetDirectionsById(long directionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class UniversityService : IUniversityService
|
public class UniversityService : IUniversityService
|
||||||
@ -42,6 +44,17 @@ public class UniversityService : IUniversityService
|
|||||||
return directions;
|
return directions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<Direction> GetDirectionsById(long directionId)
|
||||||
|
{
|
||||||
|
var response = await _httpClient.GetAsync("v1/public/direction/" + directionId);
|
||||||
|
var result = await response.Content.ReadAsStringAsync();
|
||||||
|
var direction = JsonSerializer.Deserialize<Direction>(result, new JsonSerializerOptions
|
||||||
|
{
|
||||||
|
PropertyNameCaseInsensitive = true
|
||||||
|
});
|
||||||
|
return direction;
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<University> GetUniversityById(long id)
|
public async Task<University> GetUniversityById(long id)
|
||||||
{
|
{
|
||||||
var response = await _httpClient.GetAsync("v1/public/university/" + id);
|
var response = await _httpClient.GetAsync("v1/public/university/" + id);
|
||||||
@ -52,4 +65,15 @@ public class UniversityService : IUniversityService
|
|||||||
});
|
});
|
||||||
return university;
|
return university;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<IEnumerable<Offer>> GetOffers(long directionId)
|
||||||
|
{
|
||||||
|
var response = await _httpClient.GetAsync("v1/public/credit/direction/" + directionId);
|
||||||
|
var result = await response.Content.ReadAsStringAsync();
|
||||||
|
var offers = JsonSerializer.Deserialize<IEnumerable<Offer>>(result, new JsonSerializerOptions
|
||||||
|
{
|
||||||
|
PropertyNameCaseInsensitive = true
|
||||||
|
});
|
||||||
|
return offers;
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,3 +1,5 @@
|
|||||||
|
@model CreditsViewModel
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Home Page";
|
ViewData["Title"] = "Home Page";
|
||||||
}
|
}
|
||||||
@ -8,8 +10,8 @@
|
|||||||
<div class="navigation_fixed"></div>
|
<div class="navigation_fixed"></div>
|
||||||
<div class="navigation_fixed_background"></div>
|
<div class="navigation_fixed_background"></div>
|
||||||
<div class="navigation_banks" id="navigation">
|
<div class="navigation_banks" id="navigation">
|
||||||
<div class="navigation_banks_univer ">СпбГУ</div>
|
<div class="navigation_banks_univer ">@Model.University.Name</div>
|
||||||
<div class="navigation_banks_speciality ">09.03.04 - Программная инженерия</div>
|
<div class="navigation_banks_speciality ">@Model.Direction.Code - @Model.Direction.Name</div>
|
||||||
<div class="navigation_banks_sort navigation_banks_sort_hamburger">
|
<div class="navigation_banks_sort navigation_banks_sort_hamburger">
|
||||||
<span></span>
|
<span></span>
|
||||||
<span></span>
|
<span></span>
|
||||||
@ -17,106 +19,35 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row row-cols-lg-10 g-5 g-lg-3">
|
<div class="row row-cols-lg-10 g-5 g-lg-3">
|
||||||
<div data-modal class="col-12 navigation_card navigation_bank_text">
|
@{
|
||||||
<div class="navigation_bank">
|
foreach (var offer in Model.Offers)
|
||||||
<img src="~/img/icons/alpha.png" alt="navigation" class="navigation_icon">
|
{
|
||||||
Альфа Банк <span>на 15 лет</span>
|
<div data-modal class="col-12 navigation_card navigation_bank_text">
|
||||||
</div>
|
<div class="navigation_bank">
|
||||||
<div class="navigation_credit">
|
<img src="@offer.BankIconUrl" alt="navigation" class="navigation_icon">
|
||||||
<span class="navigation_credit_cost">10000 рублей/мес</span>
|
@offer.BankName <span>на 4 года </span>
|
||||||
<span class="navigation_credit_prosent">6% в год</span>
|
</div>
|
||||||
</div>
|
<div class="navigation_credit">
|
||||||
</div>
|
<span class="navigation_credit_cost">@float.Round(Model.Direction.PlaceCost/12/3.8f) 000 рублей/мес</span>
|
||||||
<div data-modal class="col-12 navigation_card navigation_bank_text">
|
<span class="navigation_credit_prosent">@offer.BankPercent% в год</span>
|
||||||
<div class="navigation_bank">
|
</div>
|
||||||
<img src="~/img/icons/alpha.png" alt="navigation" class="navigation_icon">
|
</div>
|
||||||
Альфа Банк <span>на 15 лет</span>
|
}
|
||||||
</div>
|
}
|
||||||
<div class="navigation_credit">
|
|
||||||
<span class="navigation_credit_cost">10000 рублей/мес</span>
|
|
||||||
<span class="navigation_credit_prosent">6% в год</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-modal class="col-12 navigation_card navigation_bank_text">
|
|
||||||
<div class="navigation_bank">
|
|
||||||
<img src="~/img/icons/alpha.png" alt="navigation" class="navigation_icon">
|
|
||||||
Альфа Банк <span>на 15 лет</span>
|
|
||||||
</div>
|
|
||||||
<div class="navigation_credit">
|
|
||||||
<span class="navigation_credit_cost">10000 рублей/мес</span>
|
|
||||||
<span class="navigation_credit_prosent">6% в год</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-modal class="col-12 navigation_card navigation_bank_text">
|
|
||||||
<div class="navigation_bank">
|
|
||||||
<img src="~/img/icons/alpha.png" alt="navigation" class="navigation_icon">
|
|
||||||
Альфа Банк <span>на 15 лет</span>
|
|
||||||
</div>
|
|
||||||
<div class="navigation_credit">
|
|
||||||
<span class="navigation_credit_cost">10000 рублей/мес</span>
|
|
||||||
<span class="navigation_credit_prosent">6% в год</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-modal class="col-12 navigation_card navigation_bank_text">
|
|
||||||
<div class="navigation_bank">
|
|
||||||
<img src="~/img/icons/alpha.png" alt="navigation" class="navigation_icon">
|
|
||||||
Альфа Банк <span>на 15 лет</span>
|
|
||||||
</div>
|
|
||||||
<div class="navigation_credit">
|
|
||||||
<span class="navigation_credit_cost">10000 рублей/мес</span>
|
|
||||||
<span class="navigation_credit_prosent">6% в год</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-modal class="col-12 navigation_card navigation_bank_text">
|
|
||||||
<div class="navigation_bank">
|
|
||||||
<img src="~/img/icons/alpha.png" alt="navigation" class="navigation_icon">
|
|
||||||
Альфа Банк <span>на 15 лет</span>
|
|
||||||
</div>
|
|
||||||
<div class="navigation_credit">
|
|
||||||
<span class="navigation_credit_cost">10000 рублей/мес</span>
|
|
||||||
<span class="navigation_credit_prosent">6% в год</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-modal class="col-12 navigation_card navigation_bank_text">
|
|
||||||
<div class="navigation_bank">
|
|
||||||
<img src="~/img/icons/alpha.png" alt="navigation" class="navigation_icon">
|
|
||||||
Альфа Банк <span>на 15 лет</span>
|
|
||||||
</div>
|
|
||||||
<div class="navigation_credit">
|
|
||||||
<span class="navigation_credit_cost">10000 рублей/мес</span>
|
|
||||||
<span class="navigation_credit_prosent">6% в год</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-modal class="col-12 navigation_card navigation_bank_text">
|
|
||||||
<div class="navigation_bank">
|
|
||||||
<img src="~/img/icons/alpha.png" alt="navigation" class="navigation_icon">
|
|
||||||
Альфа Банк <span>на 15 лет</span>
|
|
||||||
</div>
|
|
||||||
<div class="navigation_credit">
|
|
||||||
<span class="navigation_credit_cost">10000 рублей/мес</span>
|
|
||||||
<span class="navigation_credit_prosent">6% в год</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div data-modal class="col-12 navigation_card navigation_bank_text">
|
|
||||||
<div class="navigation_bank">
|
|
||||||
<img src="~/img/icons/alpha.png" alt="navigation" class="navigation_icon">
|
|
||||||
Альфа Банк <span>на 15 лет</span>
|
|
||||||
</div>
|
|
||||||
<div class="navigation_credit">
|
|
||||||
<span class="navigation_credit_cost">10000 рублей/мес</span>
|
|
||||||
<span class="navigation_credit_prosent">6% в год</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="navigation_choise">
|
<div class="navigation_choise">
|
||||||
<div class="navigation_slid">
|
<div class="navigation_slid">
|
||||||
<span class="navigation_slid_disable"></span>
|
<a href="/" class="navigation_slid_disable">
|
||||||
|
<span class="navigation_slid_disable"></span>
|
||||||
|
</a>
|
||||||
|
<a href="Directions?UniversityId=@Model.University.Id" class="navigation_slid_disable">
|
||||||
|
<span class="navigation_slid_disable"></span>
|
||||||
|
</a>
|
||||||
<span class="navigation_slid_active"></span>
|
<span class="navigation_slid_active"></span>
|
||||||
<span class="navigation_slid_disable"></span>
|
<span class="navigation_slid_disable"></span>
|
||||||
<span class="navigation_slid_disable"></span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -128,30 +59,30 @@
|
|||||||
<div class="my_modal__dialog">
|
<div class="my_modal__dialog">
|
||||||
<div class="my_modal__content">
|
<div class="my_modal__content">
|
||||||
<form action="#">
|
<form action="#">
|
||||||
<div data-close class="my_modal__close">×</div>
|
<div data-close class="my_modal__close">×</div>
|
||||||
<div class="bank_information">
|
<div class="bank_information">
|
||||||
<div class="bank_block_img">
|
<div class="bank_block_img">
|
||||||
<img class="bank_img" src="~/img/icons/alpha.png" alt="bank">
|
<img class="bank_img" src="~/img/icons/alpha.png" alt="bank">
|
||||||
<div class="bank_procent_text">Процентная ставка</div>
|
<div class="bank_procent_text">Процентная ставка</div>
|
||||||
<div class="bank_procent">10%</div>
|
<div class="bank_procent">10%</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bank_name">Альфа Банк</div>
|
<div class="bank_name">Альфа Банк</div>
|
||||||
<div class="bank_form">
|
<div class="bank_form">
|
||||||
<span>Документы</span>
|
<span>Документы</span>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Паспорт</li>
|
<li>Паспорт</li>
|
||||||
<li>Справка о доходах</li>
|
<li>Справка о доходах</li>
|
||||||
<li>Дополнительные документы</li>
|
<li>Дополнительные документы</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form_btn_block">
|
<div class="form_btn_block">
|
||||||
<div class="form_btn">Беру!<img src="~/img/logo/esia.png" alt="esia" class="form_btn_img"></div>
|
<div class="form_btn">Беру!<img src="~/img/logo/esia.png" alt="esia" class="form_btn_img"></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<script src="~/js/script.js"></script>
|
<script src="~/js/script.js"></script>
|
@ -1,4 +1,4 @@
|
|||||||
@model UniversityDirectionsViewModel
|
@model DirectionsViewModel
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Выбор направления";
|
ViewData["Title"] = "Выбор направления";
|
||||||
@ -22,9 +22,9 @@
|
|||||||
@{
|
@{
|
||||||
foreach (var direction in Model.Directions)
|
foreach (var direction in Model.Directions)
|
||||||
{
|
{
|
||||||
<div class="col-md-12">
|
<a href="Credits?UniversityId=@Model.University.Id&DirectionId=@direction.Id" class="col-md-12 navigation_info_text">
|
||||||
<div class="navigation_info navigation_info_text p-3">@direction.Code - @direction.Name<span class="navigation_cost">От @float.Round(direction.PlaceCost/12) т в мес.</span> @direction.PlaceCost т в год</div>
|
<div class="navigation_info p-3">@direction.Code - @direction.Name<span class="navigation_cost">От @float.Round(direction.PlaceCost/12) т в мес.</span> @direction.PlaceCost т в год</div>
|
||||||
</div>
|
</a>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
@ -10,17 +10,19 @@
|
|||||||
<link rel="stylesheet" href="~/css/style.css">
|
<link rel="stylesheet" href="~/css/style.css">
|
||||||
<link rel="stylesheet" href="~/css/bootstrap-grid.min.css">
|
<link rel="stylesheet" href="~/css/bootstrap-grid.min.css">
|
||||||
<link rel="stylesheet" href="~/css/bootstrap.min.css">
|
<link rel="stylesheet" href="~/css/bootstrap.min.css">
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/@@sweetalert2/theme-bulma@4/bulma.css" rel="stylesheet">
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.js"></script>
|
||||||
@* <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css"/> *@
|
@* <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css"/> *@
|
||||||
@* <link rel="stylesheet" href="~/PaydayFrontend.styles.css" asp-append-version="true"/> *@
|
@* <link rel="stylesheet" href="~/PaydayFrontend.styles.css" asp-append-version="true"/> *@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<div class="menu">
|
<div class="menu">
|
||||||
<div class="menu_hamburger">
|
@* <div class="menu_hamburger"> *@
|
||||||
<span></span>
|
@* <span></span> *@
|
||||||
<span></span>
|
@* <span></span> *@
|
||||||
<span></span>
|
@* <span></span> *@
|
||||||
</div>
|
@* </div> *@
|
||||||
<a href="/"><img src="img/logo/logoPayDay.png" alt="logo" class="menu_logo"></a>
|
<a href="/"><img src="img/logo/logoPayDay.png" alt="logo" class="menu_logo"></a>
|
||||||
<a href="/" class="menu_project_name menu_project_name_text">Доступное образование</a>
|
<a href="/" class="menu_project_name menu_project_name_text">Доступное образование</a>
|
||||||
</div>
|
</div>
|
||||||
@ -47,7 +49,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav> *@
|
</nav> *@
|
||||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
|
||||||
</header>
|
</header>
|
||||||
@* <div class="container"> *@
|
@* <div class="container"> *@
|
||||||
<main role="main" class="pb-3">
|
<main role="main" class="pb-3">
|
||||||
|
@ -546,6 +546,7 @@ header {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.navigation_info_text {
|
.navigation_info_text {
|
||||||
|
text-decoration: none;
|
||||||
color: #545454;
|
color: #545454;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
|
@ -1,13 +1,4 @@
|
|||||||
|
|
||||||
const menuActive = document.querySelector('.menu');
|
|
||||||
const hamburgerActive = document.querySelector('.menu_hamburger');
|
|
||||||
|
|
||||||
|
|
||||||
hamburgerActive.addEventListener('click', el => {
|
|
||||||
el.currentTarget.classList.toggle('hamburger_active');
|
|
||||||
menuActive.classList.toggle('menu_active');
|
|
||||||
})
|
|
||||||
|
|
||||||
window.addEventListener('DOMContentLoaded', () => {
|
window.addEventListener('DOMContentLoaded', () => {
|
||||||
function eventModalOpen () {
|
function eventModalOpen () {
|
||||||
const modal = document.querySelector('.my_modal');
|
const modal = document.querySelector('.my_modal');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user