public async Task <double> GetJournalistRatingAsync(UserJournalistRating userJournalistRating)
 {
     if (_context.UserJournalistRating.Any(x => x.JournalistId == userJournalistRating.JournalistId))
     {
         if (userJournalistRating.TopicId <= 0)
         {
             return(await _context.UserJournalistRating.Where(m => m.JournalistId == userJournalistRating.JournalistId).AverageAsync(x => x.Rating));
         }
         return(await _context.UserJournalistRating.Where(m => m.JournalistId == userJournalistRating.JournalistId && m.TopicId == userJournalistRating.TopicId).AverageAsync(x => x.Rating));
     }
     else
     {
         return(await Task.FromResult(0.0d));
     }
 }
        public async Task <bool> RateJournalistAsync(UserJournalistRating userJournalistRating)
        {
            var userJournalistRatingLocal = await _context.UserJournalistRating.AsNoTracking().FirstOrDefaultAsync(x => x.JournalistId == userJournalistRating.JournalistId &&
                                                                                                                   x.TopicId == userJournalistRating.TopicId && x.UserId == userJournalistRating.UserId);

            if (userJournalistRatingLocal != null)
            {
                userJournalistRating.UserJournalistRatingId = userJournalistRatingLocal.UserJournalistRatingId;
                _context.UserJournalistRating.Update(userJournalistRating);
            }
            else
            {
                await _context.UserJournalistRating.AddAsync(userJournalistRating);
            }
            return(await _context.SaveChangesAsync() > 0 ? true : false);
        }