Сделал третью страницу
	
		
			
	
		
	
	
		
	
		
			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:
		| @@ -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"> | ||||
|             <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> | ||||
|                 </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> | ||||
|             @{ | ||||
|                 foreach (var offer in Model.Offers) | ||||
|                 { | ||||
|                     <div data-modal class="col-12 navigation_card navigation_bank_text"> | ||||
|                         <div class="navigation_bank"> | ||||
|                             <img src="@offer.BankIconUrl" alt="navigation" class="navigation_icon"> | ||||
|                             @offer.BankName  <span>на 4 года  </span> | ||||
|                         </div> | ||||
|                         <div class="navigation_credit"> | ||||
|                             <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"> | ||||
|             <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_disable"></span> | ||||
|             <span class="navigation_slid_disable"></span> | ||||
|         </div> | ||||
|     </div> | ||||
|  | ||||
| @@ -128,30 +59,30 @@ | ||||
|     <div class="my_modal__dialog"> | ||||
|         <div class="my_modal__content"> | ||||
|             <form action="#"> | ||||
|             <div data-close class="my_modal__close">×</div> | ||||
|             <div class="bank_information"> | ||||
|                 <div class="bank_block_img"> | ||||
|                     <img class="bank_img" src="~/img/icons/alpha.png" alt="bank"> | ||||
|                     <div class="bank_procent_text">Процентная ставка</div> | ||||
|                     <div class="bank_procent">10%</div> | ||||
|                 </div> | ||||
|                 <div class="bank_name">Альфа Банк</div> | ||||
|                 <div class="bank_form"> | ||||
|                     <span>Документы</span> | ||||
|                     <ul> | ||||
|                         <li>Паспорт</li> | ||||
|                         <li>Справка о доходах</li> | ||||
|                         <li>Дополнительные документы</li> | ||||
|                     </ul> | ||||
|                 </div> | ||||
|                 <div data-close class="my_modal__close">×</div> | ||||
|                 <div class="bank_information"> | ||||
|                     <div class="bank_block_img"> | ||||
|                         <img class="bank_img" src="~/img/icons/alpha.png" alt="bank"> | ||||
|                         <div class="bank_procent_text">Процентная ставка</div> | ||||
|                         <div class="bank_procent">10%</div> | ||||
|                     </div> | ||||
|                     <div class="bank_name">Альфа Банк</div> | ||||
|                     <div class="bank_form"> | ||||
|                         <span>Документы</span> | ||||
|                         <ul> | ||||
|                             <li>Паспорт</li> | ||||
|                             <li>Справка о доходах</li> | ||||
|                             <li>Дополнительные документы</li> | ||||
|                         </ul> | ||||
|                     </div> | ||||
|  | ||||
|             </div> | ||||
|             <div class="form_btn_block"> | ||||
|                 <div class="form_btn">Беру!<img src="~/img/logo/esia.png" alt="esia" class="form_btn_img"></div> | ||||
|                 </div> | ||||
|                 <div class="form_btn_block"> | ||||
|                     <div class="form_btn">Беру!<img src="~/img/logo/esia.png" alt="esia" class="form_btn_img"></div> | ||||
|  | ||||
|             </div> | ||||
|                 </div> | ||||
|             </form> | ||||
|         </div> | ||||
|     </div> | ||||
| </div> | ||||
| </div> | ||||
| <script src="~/js/script.js"></script> | ||||
| @@ -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'); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user