public virtual async Task <double> SetRatingAsync(Guid entityId, string userId, int rating) { var existingRating = await RatingsSource.FirstOrDefaultAsync(link => link.UserId == userId && link.EntityId == entityId); if (existingRating == null) { var newRating = new LinkRatingEntity <T> { UserId = userId, Rating = rating, EntityId = entityId }; AddAndSaveRating(newRating); } else { existingRating.Rating = rating; await context.SaveChangesAsync(); } return(await RecalcRatingsAsync(entityId)); }
protected void AddAndSaveRating(LinkRatingEntity <T> newRating) { context.Add(newRating); context.SaveChanges(); }