Добавил новый метод контроллера

1. Добавил новый метод в контроллер.
2. В репозитории сделал проверку на наличие справки для страницы.
3. В методах контроллера добавил фильтрацию для id категории.
This commit is contained in:
parent 5ae54386ad
commit c8ec264f13
3 changed files with 42 additions and 2 deletions

View File

@ -20,4 +20,15 @@ public interface IHelpPageRepository : ICrudRepository<HelpPageDto>
Task<HelpPageDto?> GetOrDefaultByUrlPageAndIdCategoryAsync(string urlPage,
int idCategory,
CancellationToken cancellationToken);
/// <summary>
/// Проверяет наличие справки для страницы
/// </summary>
/// <param name="urlPage"></param>
/// <param name="idCategory"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<bool> IsExistingAsync(string urlPage,
int idCategory,
CancellationToken cancellationToken);
}

View File

@ -31,4 +31,9 @@ public class HelpPageRepository : CrudRepositoryBase<HelpPageDto, HelpPage>,
return helpPage.Adapt<HelpPageDto>();
}
public Task<bool> IsExistingAsync(string urlPage, int idCategory, CancellationToken cancellationToken) =>
dbContext.HelpPages.AnyAsync(h => h.UrlPage == urlPage &&
h.IdCategory == idCategory,
cancellationToken);
}

View File

@ -21,12 +21,15 @@ public class HelpPageController : ControllerBase
{
private readonly IHelpPageService helpPageService;
private readonly IUserRepository userRepository;
private readonly IHelpPageRepository helpPageRepository;
public HelpPageController(IHelpPageService helpPageService,
IUserRepository userRepository)
IUserRepository userRepository,
IHelpPageRepository helpPageRepository)
{
this.helpPageService = helpPageService;
this.userRepository = userRepository;
this.helpPageRepository = helpPageRepository;
}
/// <summary>
@ -78,7 +81,8 @@ public class HelpPageController : ControllerBase
[ProducesResponseType(typeof(PhysicalFileResult), (int)HttpStatusCode.OK)]
[ProducesResponseType(StatusCodes.Status204NoContent)]
public async Task<IActionResult> GetFileAsync(string urlPage,
int idCategory,
[Range(minimum: 20000, maximum: 20000, ErrorMessage = "Категория файла недопустима. Допустимые: 20000")]
int idCategory,
CancellationToken cancellationToken)
{
var file = await helpPageService.GetFileStreamAsync(urlPage,
@ -94,4 +98,24 @@ public class HelpPageController : ControllerBase
return File(memoryStream, "application/pdf", file.fileName);
}
/// <summary>
/// Проверяет наличие справки для страницы
/// </summary>
/// <param name="urlPage">Url страницы</param>
/// <param name="idCategory">Id категории файла. Допустимое значение параметра: 20000</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpGet]
[Route("isExisting/{urlPage}/{idCategory}")]
[ProducesResponseType(typeof(bool), (int)HttpStatusCode.OK)]
public async Task<IActionResult> IsExistingAsync(string urlPage,
[Range(minimum: 20000, maximum: 20000, ErrorMessage = "Категория файла недопустима. Допустимые: 20000")]
int idCategory,
CancellationToken cancellationToken)
{
return Ok(await helpPageRepository.IsExistingAsync(urlPage,
idCategory,
cancellationToken));
}
}