protected virtual async Task <double> RecalcRatingsAsync(Guid entityId) { var ratingsExist = await RatingsSource.AnyAsync(link => link.EntityId == entityId); var avg = ratingsExist ? await RatingsSource .Where(link => link.EntityId == entityId) .Select(link => link.Rating) .AverageAsync() : 0; var entity = await EntitiesSource.FirstOrDefaultAsync(p => p.Id == entityId); entity.EntityInfo.Rating = avg; SaveChangedState(entity); return(avg); }
public virtual int EntitiesCount() { return(EntitiesSource.Count()); }
public virtual T GetEntity(Guid entityId) { return(EntitiesSource.FirstOrDefault(e => e.Id == entityId)); }
public virtual IEnumerable <T> GetEntities(int quantity, int skip = 0) { return(EntitiesSource.Skip(skip).Take(quantity)); }