Сделал третью страницу
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)
|
||||
return RedirectToAction("Index");
|
||||
|
||||
var answer = new UniversityDirectionsViewModel();
|
||||
var answer = new DirectionsViewModel();
|
||||
answer.University = await _universityService.GetUniversityById(universityId);
|
||||
answer.Directions = await _universityService.GetDirectionsByUniversityId(universityId);
|
||||
answer.SearchString = searchString;
|
||||
@ -54,9 +54,17 @@ public class HomeController : Controller
|
||||
}
|
||||
|
||||
[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()
|
||||
|
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;
|
||||
|
||||
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;
|
||||
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<Direction>> GetDirectionsByUniversityId(long universityId);
|
||||
public Task<University> GetUniversityById(long id);
|
||||
public Task<IEnumerable<Offer>> GetOffers(long directionId);
|
||||
public Task<Direction> GetDirectionsById(long directionId);
|
||||
}
|
||||
|
||||
public class UniversityService : IUniversityService
|
||||
@ -42,6 +44,17 @@ public class UniversityService : IUniversityService
|
||||
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)
|
||||
{
|
||||
var response = await _httpClient.GetAsync("v1/public/university/" + id);
|
||||
@ -52,4 +65,15 @@ public class UniversityService : IUniversityService
|
||||
});
|
||||
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";
|
||||
}
|
||||
@ -8,8 +10,8 @@
|
||||
<div class="navigation_fixed"></div>
|
||||
<div class="navigation_fixed_background"></div>
|
||||
<div class="navigation_banks" id="navigation">
|
||||
<div class="navigation_banks_univer ">СпбГУ</div>
|
||||
<div class="navigation_banks_speciality ">09.03.04 - Программная инженерия</div>
|
||||
<div class="navigation_banks_univer ">@Model.University.Name</div>
|
||||
<div class="navigation_banks_speciality ">@Model.Direction.Code - @Model.Direction.Name</div>
|
||||
<div class="navigation_banks_sort navigation_banks_sort_hamburger">
|
||||
<span></span>
|
||||
<span></span>
|
||||
@ -17,106 +19,35 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-cols-lg-10 g-5 g-lg-3">
|
||||
@{
|
||||
foreach (var offer in Model.Offers)
|
||||
{
|
||||
<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>
|
||||
<img src="@offer.BankIconUrl" alt="navigation" class="navigation_icon">
|
||||
@offer.BankName <span>на 4 года </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 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>
|
||||
<span class="navigation_credit_cost">@float.Round(Model.Direction.PlaceCost/12/3.8f) 000 рублей/мес</span>
|
||||
<span class="navigation_credit_prosent">@offer.BankPercent% в год</span>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="navigation_choise">
|
||||
<div class="navigation_slid">
|
||||
<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_disable"></span>
|
||||
<span class="navigation_slid_disable"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
@model UniversityDirectionsViewModel
|
||||
@model DirectionsViewModel
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Выбор направления";
|
||||
@ -22,9 +22,9 @@
|
||||
@{
|
||||
foreach (var direction in Model.Directions)
|
||||
{
|
||||
<div class="col-md-12">
|
||||
<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>
|
||||
<a href="Credits?UniversityId=@Model.University.Id&DirectionId=@direction.Id" class="col-md-12 navigation_info_text">
|
||||
<div class="navigation_info p-3">@direction.Code - @direction.Name<span class="navigation_cost">От @float.Round(direction.PlaceCost/12) т в мес.</span> @direction.PlaceCost т в год</div>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
@ -10,17 +10,19 @@
|
||||
<link rel="stylesheet" href="~/css/style.css">
|
||||
<link rel="stylesheet" href="~/css/bootstrap-grid.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="~/PaydayFrontend.styles.css" asp-append-version="true"/> *@
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div class="menu">
|
||||
<div class="menu_hamburger">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</div>
|
||||
@* <div class="menu_hamburger"> *@
|
||||
@* <span></span> *@
|
||||
@* <span></span> *@
|
||||
@* <span></span> *@
|
||||
@* </div> *@
|
||||
<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>
|
||||
</div>
|
||||
@ -47,7 +49,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</nav> *@
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
</header>
|
||||
@* <div class="container"> *@
|
||||
<main role="main" class="pb-3">
|
||||
|
@ -546,6 +546,7 @@ header {
|
||||
}
|
||||
|
||||
.navigation_info_text {
|
||||
text-decoration: none;
|
||||
color: #545454;
|
||||
font-size: 20px;
|
||||
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', () => {
|
||||
function eventModalOpen () {
|
||||
const modal = document.querySelector('.my_modal');
|
||||
|
Loading…
x
Reference in New Issue
Block a user