Сделал третью страницу
All checks were successful
Create and publish a Docker image / build-and-push-image (push) Successful in 24s

This commit is contained in:
Sergey Karmanov 2023-07-30 08:24:54 +03:00
parent bfea515ec2
commit 9f5c2c4d47
Signed by: serega404
GPG Key ID: B6AD49C8C835460C
10 changed files with 115 additions and 140 deletions

View File

@ -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()

View 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; }
}

View File

@ -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;

View 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; }
}

View File

@ -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;
}
}

View File

@ -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&nbsp; <span>на 4 года &nbsp;</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>

View File

@ -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>

View File

@ -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">

View File

@ -546,6 +546,7 @@ header {
}
.navigation_info_text {
text-decoration: none;
color: #545454;
font-size: 20px;
font-style: normal;

View File

@ -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');