From 0fbeb6160a332205cb26515c6070da81f6ffacea Mon Sep 17 00:00:00 2001 From: Sergey Karmanov Date: Sun, 30 Jul 2023 14:21:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B3=D0=BB=D0=BE=D0=B1=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B8=D1=81=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PaydayFrontend/Controllers/AdminController.cs | 43 +++++++++- PaydayFrontend/Controllers/HomeController.cs | 6 +- PaydayFrontend/Models/AdminIndexViewModel.cs | 8 ++ PaydayFrontend/Models/AdminViewModel.cs | 7 ++ PaydayFrontend/Models/Bank.cs | 8 ++ PaydayFrontend/PaydayFrontend.csproj | 1 + PaydayFrontend/Program.cs | 1 + PaydayFrontend/Services/IBankService.cs | 43 ++++++++++ PaydayFrontend/Services/IUniversityService.cs | 11 --- PaydayFrontend/Views/Admin/Banks.cshtml | 2 +- PaydayFrontend/Views/Admin/Index.cshtml | 46 +++++----- .../Views/Admin/Universities.cshtml | 2 +- PaydayFrontend/Views/Home/Credits.cshtml | 4 +- PaydayFrontend/Views/Home/Directions.cshtml | 2 +- PaydayFrontend/Views/Home/Index.cshtml | 2 +- .../Views/Shared/_AdminLayout.cshtml | 7 +- PaydayFrontend/wwwroot/admin/css/style.css | 81 +++++++++++++++++- PaydayFrontend/wwwroot/admin/img/Vector.svg | 3 - .../wwwroot/img/{logo => }/esia.png | Bin .../wwwroot/img/{logo => }/search.svg | 0 20 files changed, 229 insertions(+), 48 deletions(-) create mode 100644 PaydayFrontend/Models/AdminIndexViewModel.cs create mode 100644 PaydayFrontend/Models/AdminViewModel.cs create mode 100644 PaydayFrontend/Models/Bank.cs create mode 100644 PaydayFrontend/Services/IBankService.cs delete mode 100644 PaydayFrontend/wwwroot/admin/img/Vector.svg rename PaydayFrontend/wwwroot/img/{logo => }/esia.png (100%) rename PaydayFrontend/wwwroot/img/{logo => }/search.svg (100%) diff --git a/PaydayFrontend/Controllers/AdminController.cs b/PaydayFrontend/Controllers/AdminController.cs index 16a5c9a..7a36107 100644 --- a/PaydayFrontend/Controllers/AdminController.cs +++ b/PaydayFrontend/Controllers/AdminController.cs @@ -1,14 +1,53 @@ using System.Diagnostics; using Microsoft.AspNetCore.Mvc; using PaydayFrontend.Models; +using PaydayFrontend.Services; namespace PaydayFrontend.Controllers; public class AdminController : Controller { - public async Task Index() + private readonly IUniversityService _universityService; + private readonly IBankService _bankService; + + public AdminController(IUniversityService universityService, IBankService bankService) { - return View(); + _universityService = universityService; + _bankService = bankService; + } + + public async Task Index(string searchString) + { + var result = new AdminViewModel(); + result.searchString = searchString; + result.indexes = new(); + if (!String.IsNullOrEmpty(searchString)) + { + IEnumerable universities = await _universityService.GetAllUniversity(); + universities = universities.Where(s => s.Name!.ToLower().Contains(searchString.ToLower()) || s.FullName!.ToLower().Contains(searchString.ToLower())).ToList(); + IEnumerable banks = await _bankService.GetAllBanks(); + banks = banks.Where(s => s.Name!.ToLower().Contains(searchString.ToLower())).ToList(); + foreach (var university in universities) + { + result.indexes.Add(new AdminIndexViewModel + { + Name = university.Name, + LogoUrl = university.ImageUrl, + Type = "Университет" + }); + } + foreach (var bank in banks) + { + result.indexes.Add(new AdminIndexViewModel + { + Name = bank.Name, + LogoUrl = bank.ImageUrl, + Type = "Банк" + }); + } + } + + return View(result); } public async Task Universities() diff --git a/PaydayFrontend/Controllers/HomeController.cs b/PaydayFrontend/Controllers/HomeController.cs index 726a108..3fd9daa 100644 --- a/PaydayFrontend/Controllers/HomeController.cs +++ b/PaydayFrontend/Controllers/HomeController.cs @@ -9,11 +9,13 @@ public class HomeController : Controller { private readonly ILogger _logger; private readonly IUniversityService _universityService; + private readonly IBankService _bankService; - public HomeController(ILogger logger, IUniversityService universityService) + public HomeController(ILogger logger, IUniversityService universityService, IBankService bankService) { _logger = logger; _universityService = universityService; + _bankService = bankService; } public async Task Index(string searchString) @@ -62,7 +64,7 @@ public class HomeController : Controller var answer = new CreditsViewModel(); answer.University = await _universityService.GetUniversityById(universityId);; answer.Direction = await _universityService.GetDirectionsById(directionId); - answer.Offers = await _universityService.GetOffers(directionId); + answer.Offers = await _bankService.GetOffers(directionId); return View(answer); } diff --git a/PaydayFrontend/Models/AdminIndexViewModel.cs b/PaydayFrontend/Models/AdminIndexViewModel.cs new file mode 100644 index 0000000..f3cdf4b --- /dev/null +++ b/PaydayFrontend/Models/AdminIndexViewModel.cs @@ -0,0 +1,8 @@ +namespace PaydayFrontend.Models; + +public class AdminIndexViewModel +{ + public string Name { get; set; } + public string LogoUrl { get; set; } + public string Type { get; set; } +} \ No newline at end of file diff --git a/PaydayFrontend/Models/AdminViewModel.cs b/PaydayFrontend/Models/AdminViewModel.cs new file mode 100644 index 0000000..90d9ec1 --- /dev/null +++ b/PaydayFrontend/Models/AdminViewModel.cs @@ -0,0 +1,7 @@ +namespace PaydayFrontend.Models; + +public class AdminViewModel +{ + public List indexes { get; set; } + public string searchString { get; set; } +} \ No newline at end of file diff --git a/PaydayFrontend/Models/Bank.cs b/PaydayFrontend/Models/Bank.cs new file mode 100644 index 0000000..af136f3 --- /dev/null +++ b/PaydayFrontend/Models/Bank.cs @@ -0,0 +1,8 @@ +namespace PaydayFrontend.Models; + +public class Bank +{ + public long Id { get; set; } + public string Name { get; set; } + public string ImageUrl { get; set; } +} \ No newline at end of file diff --git a/PaydayFrontend/PaydayFrontend.csproj b/PaydayFrontend/PaydayFrontend.csproj index d65c2e3..363f2d8 100644 --- a/PaydayFrontend/PaydayFrontend.csproj +++ b/PaydayFrontend/PaydayFrontend.csproj @@ -43,6 +43,7 @@ <_ContentIncludedByDefault Remove="wwwroot\admin\sass\_general.sass" /> <_ContentIncludedByDefault Remove="wwwroot\admin\sass\_media.sass" /> <_ContentIncludedByDefault Remove="wwwroot\admin\sass\_mixins.sass" /> + <_ContentIncludedByDefault Remove="wwwroot\admin\img\Vector.svg" /> diff --git a/PaydayFrontend/Program.cs b/PaydayFrontend/Program.cs index 36138ce..8ecf94b 100644 --- a/PaydayFrontend/Program.cs +++ b/PaydayFrontend/Program.cs @@ -21,6 +21,7 @@ builder.Services.AddHttpClient("backend", client => client.DefaultRequestHeaders.Add("Accept", "application/json"); }); builder.Services.AddTransient(); +builder.Services.AddTransient(); var app = builder.Build(); diff --git a/PaydayFrontend/Services/IBankService.cs b/PaydayFrontend/Services/IBankService.cs new file mode 100644 index 0000000..af7c282 --- /dev/null +++ b/PaydayFrontend/Services/IBankService.cs @@ -0,0 +1,43 @@ +using System.Text.Json; +using PaydayFrontend.Models; + +namespace PaydayFrontend.Services; + +public interface IBankService +{ + public Task> GetAllBanks(); + public Task> GetOffers(long directionId); +} + +public class BankService : IBankService +{ + private readonly HttpClient _httpClient; + + public BankService(HttpClient httpClient) + { + _httpClient = httpClient; + _httpClient.BaseAddress = new Uri("https://payday.zetcraft.ru"); + } + + public async Task> GetAllBanks() + { + var response = await _httpClient.GetAsync("v1/admin/banks"); + var result = await response.Content.ReadAsStringAsync(); + var banks = JsonSerializer.Deserialize>(result, new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }); + return banks; + } + + public async Task> GetOffers(long directionId) + { + var response = await _httpClient.GetAsync("v1/public/credit/direction/" + directionId); + var result = await response.Content.ReadAsStringAsync(); + var offers = JsonSerializer.Deserialize>(result, new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }); + return offers; + } +} \ No newline at end of file diff --git a/PaydayFrontend/Services/IUniversityService.cs b/PaydayFrontend/Services/IUniversityService.cs index b26ed9a..61e58de 100644 --- a/PaydayFrontend/Services/IUniversityService.cs +++ b/PaydayFrontend/Services/IUniversityService.cs @@ -8,7 +8,6 @@ public interface IUniversityService public Task> GetAllUniversity(); public Task> GetDirectionsByUniversityId(long universityId); public Task GetUniversityById(long id); - public Task> GetOffers(long directionId); public Task GetDirectionsById(long directionId); } @@ -66,14 +65,4 @@ public class UniversityService : IUniversityService return university; } - public async Task> GetOffers(long directionId) - { - var response = await _httpClient.GetAsync("v1/public/credit/direction/" + directionId); - var result = await response.Content.ReadAsStringAsync(); - var offers = JsonSerializer.Deserialize>(result, new JsonSerializerOptions - { - PropertyNameCaseInsensitive = true - }); - return offers; - } } \ No newline at end of file diff --git a/PaydayFrontend/Views/Admin/Banks.cshtml b/PaydayFrontend/Views/Admin/Banks.cshtml index 15fc3e4..9baa918 100644 --- a/PaydayFrontend/Views/Admin/Banks.cshtml +++ b/PaydayFrontend/Views/Admin/Banks.cshtml @@ -4,7 +4,7 @@
diff --git a/PaydayFrontend/Views/Admin/Index.cshtml b/PaydayFrontend/Views/Admin/Index.cshtml index 5eaacd2..fac7b42 100644 --- a/PaydayFrontend/Views/Admin/Index.cshtml +++ b/PaydayFrontend/Views/Admin/Index.cshtml @@ -1,31 +1,37 @@ +@model AdminViewModel +
-
Главная/Институты
+
Главная
-
- - - -
-
- - + } + + }
+ + \ No newline at end of file diff --git a/PaydayFrontend/Views/Admin/Universities.cshtml b/PaydayFrontend/Views/Admin/Universities.cshtml index f251e74..e88524f 100644 --- a/PaydayFrontend/Views/Admin/Universities.cshtml +++ b/PaydayFrontend/Views/Admin/Universities.cshtml @@ -4,7 +4,7 @@
diff --git a/PaydayFrontend/Views/Home/Credits.cshtml b/PaydayFrontend/Views/Home/Credits.cshtml index 68b7837..011049a 100644 --- a/PaydayFrontend/Views/Home/Credits.cshtml +++ b/PaydayFrontend/Views/Home/Credits.cshtml @@ -74,7 +74,7 @@
bank
Процентная ставка
-
10%
+
от 4%
Альфа Банк
@@ -88,7 +88,7 @@
-
Беру!esia
+
Беру!esia
diff --git a/PaydayFrontend/Views/Home/Directions.cshtml b/PaydayFrontend/Views/Home/Directions.cshtml index 22a660e..4e6b85b 100644 --- a/PaydayFrontend/Views/Home/Directions.cshtml +++ b/PaydayFrontend/Views/Home/Directions.cshtml @@ -13,7 +13,7 @@
diff --git a/PaydayFrontend/Views/Home/Index.cshtml b/PaydayFrontend/Views/Home/Index.cshtml index d08f463..b3c33be 100644 --- a/PaydayFrontend/Views/Home/Index.cshtml +++ b/PaydayFrontend/Views/Home/Index.cshtml @@ -10,7 +10,7 @@
- +
@{ foreach (var university in Model.Directions) diff --git a/PaydayFrontend/Views/Shared/_AdminLayout.cshtml b/PaydayFrontend/Views/Shared/_AdminLayout.cshtml index a47dc00..e1da662 100644 --- a/PaydayFrontend/Views/Shared/_AdminLayout.cshtml +++ b/PaydayFrontend/Views/Shared/_AdminLayout.cshtml @@ -17,9 +17,10 @@ - Главная - Банки - Институты + Главная + Банки + Институты + На сайт
diff --git a/PaydayFrontend/wwwroot/admin/css/style.css b/PaydayFrontend/wwwroot/admin/css/style.css index 9c2a242..b452d18 100644 --- a/PaydayFrontend/wwwroot/admin/css/style.css +++ b/PaydayFrontend/wwwroot/admin/css/style.css @@ -2,6 +2,15 @@ font-family: "Roboto", sans-serif } +.admin_button { + display: flex; + align-items: center; + justify-content: center; + color: white; + text-align: center; + text-decoration: none; +} + .admin_menu_block { position: fixed; z-index: 3; @@ -11,6 +20,76 @@ background-color: #fff } + +.universe_icon { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + height: 130px; + width: 130px +} + +/*.universe_card {*/ +/* -moz-user-select: none;*/ +/* -webkit-user-select: none;*/ +/* -ms-user-select: none;*/ +/* user-select: none;*/ +/* display: -webkit-box;*/ +/* display: -ms-flexbox;*/ +/* display: flex;*/ +/* -webkit-box-orient: vertical;*/ +/* -webkit-box-direction: normal;*/ +/* -ms-flex-direction: column;*/ +/* flex-direction: column;*/ +/* -webkit-box-pack: center;*/ +/* -ms-flex-pack: center;*/ +/* justify-content: center;*/ +/* -ms-flex-line-pack: center;*/ +/* align-content: center;*/ +/* -webkit-box-align: center;*/ +/* -ms-flex-align: center;*/ +/* align-items: center;*/ +/* margin: 0 30px 20px 0;*/ +/* height: 205px;*/ +/* width: 205px;*/ +/* background-color: #fff;*/ +/* border-radius: 44px*/ +/*}*/ + +/*.universe_card:nth-child(6) {*/ +/* margin-right: 0px*/ +/*}*/ + +/*.universe_card:nth-child(11) {*/ +/* margin-right: 0px*/ +/*}*/ + +/*.universe_card_text {*/ +/* text-decoration: none;*/ +/*}*/ +/*.universe_card:nth-child(6) {*/ +/* margin-right: 0px*/ +/*}*/ + +/*.universe_card:nth-child(11) {*/ +/* margin-right: 0px*/ +/*}*/ + +/*.universe_card_text {*/ +/* color: #2a2a2a;*/ +/* font-size: 24px;*/ +/* font-style: normal;*/ +/* font-weight: 500*/ +/*}*/ + +/*.universe_card_text span {*/ +/* color: #50d400;*/ +/* font-size: 16px;*/ +/* font-style: normal;*/ +/* font-weight: 500*/ +/*}*/ + .admin_menu { z-index: 1; height: 360px; @@ -166,7 +245,7 @@ height: 54px; margin-left: 30px; margin-top: 30px; - width: 160px; + width: 200px; color: #000; font-size: 18px; font-style: normal; diff --git a/PaydayFrontend/wwwroot/admin/img/Vector.svg b/PaydayFrontend/wwwroot/admin/img/Vector.svg deleted file mode 100644 index b5e5946..0000000 --- a/PaydayFrontend/wwwroot/admin/img/Vector.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/PaydayFrontend/wwwroot/img/logo/esia.png b/PaydayFrontend/wwwroot/img/esia.png similarity index 100% rename from PaydayFrontend/wwwroot/img/logo/esia.png rename to PaydayFrontend/wwwroot/img/esia.png diff --git a/PaydayFrontend/wwwroot/img/logo/search.svg b/PaydayFrontend/wwwroot/img/search.svg similarity index 100% rename from PaydayFrontend/wwwroot/img/logo/search.svg rename to PaydayFrontend/wwwroot/img/search.svg