Exemple #1
0
 public static async Task <int> GetCountAsync <TKey, TData, TModel>(this IDbCountableRepository <TKey, TData, TModel> repository)
     where TData : EntityBase <TKey>
     where TModel : ModelBase <TKey>
     where TKey : IEquatable <TKey>
 {
     return(await repository.DbBaseRepository.FindBy(a => true).CountAsync());
 }
        public static async Task <IEnumerable <TModel> > FindContainingAnyTagsAsync <TKey, TData, TModel>(this IDbCountableRepository <TKey, TData, TModel> repository, IEnumerable <string> tags)
            where TData : EntityBase <TKey>, ITaggedEntity
            where TModel : ModelBase <TKey>, ITaggedModel
            where TKey : IEquatable <TKey>
        {
            if (tags == null || !tags.Any())
            {
                throw new BadArgumentException("Tags cannot be empty");
            }

            var data = await repository.DbBaseRepository.FindBy(a => tags.Any(t => a.Tags.Select(s => s.TagName).Contains(t))).ToListAsync();

            return(repository.DbBaseRepository.ObjectMapper.Map <IEnumerable <TModel> >(data));
        }
Exemple #3
0
        public static async Task <IEnumerable <TModel> > FindByNameAsync <TKey, TData, TModel>(this IDbCountableRepository <TKey, TData, TModel> repository, string name)
            where TData : EntityBase <TKey>, INamedEntity
            where TModel : ModelBase <TKey>, INamedModel
            where TKey : IEquatable <TKey>
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new BadArgumentException("Name cannot be empty");
            }

            var data = await repository.DbBaseRepository.FindBy(a => a.Name == name).ToListAsync();

            return(repository.DbBaseRepository.ObjectMapper.Map <IEnumerable <TModel> >(data));
        }