Обновил выдачу направлений
All checks were successful
Create and publish a Docker image / build-and-push-image (push) Successful in 17s

This commit is contained in:
Sergey Karmanov 2023-07-30 02:59:16 +03:00
parent 3260da9b78
commit 23e334f201
Signed by: serega404
GPG Key ID: B6AD49C8C835460C
8 changed files with 83 additions and 24 deletions

View File

@ -99,19 +99,5 @@ public class AdminController : ControllerBase
return BadRequest(result);
}
// TODO: Переделать
/// <summary>
/// Добавление направления университета
/// </summary>
[HttpPost("universities/directions")]
public async Task<ActionResult> AddUniversityDirection([FromBody] UniversityDirection universityDirection)
{
await _adminService.AddUniversityDirection(universityDirection);
return Ok();
}
}

View File

@ -28,8 +28,8 @@ public class PublicController : ControllerBase
/// Получение всех направлений университета
/// </summary>
/// <response code="400">Университет не найден</response>
[HttpGet("university/{id}/direction")]
public async Task<ActionResult<IEnumerable<UniversityDto>>> GetAllUniversityDirectionByUniversityId(long id)
[HttpGet("university/{id}/directions")]
public async Task<ActionResult<IEnumerable<UniversityDirectionDto>>> GetAllUniversityDirectionByUniversityId(long id)
{
var result = await _publicService.GetAllUniversityDirectionByUniversityId(id);

View File

@ -1,4 +1,6 @@
using Microsoft.AspNetCore.Mvc;
using PaydayBackend.Models;
using PaydayBackend.Services;
namespace PaydayBackend.Controllers;
@ -6,11 +8,22 @@ namespace PaydayBackend.Controllers;
[ApiController]
public class UniversityController : ControllerBase
{
private readonly IAdminService _adminService;
public UniversityController()
public UniversityController(IAdminService adminService)
{
_adminService = adminService;
}
/// <summary>
/// Добавление направления университета
/// </summary>
/// <response code="400">Университет не найден</response>
[HttpPost("universities/directions")]
public async Task<ActionResult<string>> AddUniversityDirection([FromBody] UniversityDirectionDto universityDirection)
{
var result = await _adminService.AddUniversityDirection(universityDirection);
return result == "OK" ? Ok() : BadRequest(result);
}
}

View File

@ -1,4 +1,5 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace PaydayBackend.Models;
@ -9,5 +10,6 @@ public class University
public string Name { get; set; }
public string FullName { get; set; }
public string ImageUrl { get; set; }
[NotMapped]
public List<UniversityDirection> Directions { get; set; } = null;
}

View File

@ -12,5 +12,6 @@ public class UniversityDirection
public long UniversityId { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public int PlaceCost { get; set; }
}

View File

@ -0,0 +1,26 @@
using System.ComponentModel.DataAnnotations;
namespace PaydayBackend.Models;
public class UniversityDirectionDto
{
public UniversityDirectionDto(long id, long universityId, string code, string name, string url, int placeCost)
{
Id = id;
UniversityId = universityId;
Code = code;
Name = name;
Url = url;
PlaceCost = placeCost;
}
public long Id { get; set; }
public long UniversityId { get; set; }
[MinLength(5)]
[MaxLength(10)]
public string Code { get; set; }
[MaxLength(50)]
public string Name { get; set; }
public string Url { get; set; }
public int PlaceCost { get; set; }
}

View File

@ -7,14 +7,17 @@ namespace PaydayBackend.Services;
public interface IAdminService
{
// Bank
public Task<string> AddBank(string bankName, IFormFile file);
public Task<IEnumerable<Bank>> GetAllBanks();
public Task AddLoanTerm(LoanTerm loanTerm);
public Task<string> RemoveAllLoanTermsByBankId(long bankId);
public Task<IEnumerable<LoanTerm>?> GetAllLoanTermsByBankId(long bankId);
// University
public Task<bool> UniversityIsExist(long universityId);
public Task<IEnumerable<University>> GetAllUniversity();
public Task<string> AddUniversity(string shortName, string fullName, IFormFile file);
public Task AddUniversityDirection(UniversityDirection universityDirection);
public Task<string> AddUniversityDirection(UniversityDirectionDto universityDirection);
}
public class AdminService : IAdminService
@ -29,6 +32,14 @@ public class AdminService : IAdminService
return true;
}
public async Task<bool> UniversityIsExist(long universityId)
{
if (await _databaseContext.Universities.Where(x => x.Id == universityId).FirstOrDefaultAsync() == null)
return false;
return true;
}
public AdminService(DatabaseContext databaseContext, IStorageService storageService)
{
@ -136,9 +147,21 @@ public class AdminService : IAdminService
return "Image not uploaded";
}
public async Task AddUniversityDirection(UniversityDirection universityDirection)
public async Task<string> AddUniversityDirection(UniversityDirectionDto dto)
{
var university = await _databaseContext.Universities.Where(x => x.Id == dto.UniversityId).FirstOrDefaultAsync();
if (university == null)
return "University not found";
var universityDirection = new UniversityDirection();
universityDirection.UniversityId = dto.UniversityId;
universityDirection.Name = dto.Name;
universityDirection.Code = dto.Code;
universityDirection.PlaceCost = dto.PlaceCost;
await _databaseContext.UniversityDirections.AddAsync(universityDirection);
await _databaseContext.SaveChangesAsync();
return "OK";
}
}

View File

@ -6,7 +6,7 @@ namespace PaydayBackend.Services;
public interface IPublicService
{
public Task<IEnumerable<UniversityDto>> GetAllUniversity();
public Task<IEnumerable<UniversityDirection>?> GetAllUniversityDirectionByUniversityId(long universityId);
public Task<IEnumerable<UniversityDirectionDto>?> GetAllUniversityDirectionByUniversityId(long universityId);
public Task<IEnumerable<LoanTerm>?> GetAllLoansByDirectionCost(long universityDirectionId);
public Task<long> GetMinPlaceCostByUniversityId(long universityId);
}
@ -37,12 +37,20 @@ public class PublicService : IPublicService
return dtos;
}
public async Task<IEnumerable<UniversityDirection>?> GetAllUniversityDirectionByUniversityId(long universityId)
public async Task<IEnumerable<UniversityDirectionDto>?> GetAllUniversityDirectionByUniversityId(long universityId)
{
if (await _databaseContext.Universities.Where(x => x.Id == universityId).FirstOrDefaultAsync() == null)
return null;
return await _databaseContext.UniversityDirections.Where(x => x.UniversityId == universityId).ToListAsync();
var result = await _databaseContext.UniversityDirections.Where(x => x.UniversityId == universityId).ToListAsync();
List<UniversityDirectionDto> dtos = new List<UniversityDirectionDto>();
foreach (var item in result)
{
UniversityDirectionDto dto = new UniversityDirectionDto(item.Id, item.UniversityId, item.Code, item.Name, item.Url, item.PlaceCost);
dtos.Add(dto);
}
return dtos;
}
public async Task<IEnumerable<LoanTerm>?> GetAllLoansByDirectionCost(long universityDirectionId)