public async Task <IEnumerable <PublicTrainingTemplateDto> > GetPublicTemplatesAsync(
            PublicTrainingTemplatePaginationModel model, int?userId)
        {
            IQueryable <PublicTrainingTemplate> publicTemplates = publicTemplateRepository.GetAll();

            if (model.Name is not null)
            {
                publicTemplates = publicTemplates.Where(p => p.Template.Name.Contains(model.Name));
            }

            if (model.CategoryId is not null)
            {
                publicTemplates = publicTemplates.Where(p => p.Template.CategoryId.Equals(model.CategoryId));
            }

            if (userId is not null)
            {
                publicTemplates = publicTemplates.Where(p => p.Template.CreatorId.Equals(userId));
            }

            IEnumerable <PublicTrainingTemplateDto> publicTemplatesDtos = (await publicTemplates
                                                                           .ToListAsync())
                                                                          .Select(p => mapper.Map <PublicTrainingTemplate, PublicTrainingTemplateDto>(p));


            return(paginationService.MakePage(model, publicTemplatesDtos));
        }
 public async Task <IActionResult> GetPublicTemplatesAsync(
     [FromQuery] PublicTrainingTemplatePaginationModel model,
     int userId)
 {
     return(this.ConvertResult(await publicTraningService.GetPublicTemplatesAsync(model, userId)));
 }