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)); }
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)); }