Example #1
0
        private bool CorrectCollectionOfRatingsGiven(IEnumerable <PackageVersionRatings> ratingsCollection)
        {
            if (ratingsCollection.Count() != 1)
            {
                return(false);
            }
            PackageVersionRatings packageVersionRatings = ratingsCollection.Single();

            return(packageVersionRatings.PackageId == _existingPackage.Id &&
                   packageVersionRatings.PackageVersion == _existingPackage.Version &&
                   packageVersionRatings.RatingAverage == 0 &&
                   packageVersionRatings.RatingCount == 0);
        }
Example #2
0
        private void UpdatePackages(IEnumerable <PackageVersionRatings> packageVersionRatings)
        {
            var packagesToUpdate = new List <Package>();

            foreach (var versionRatings in packageVersionRatings)
            {
                PackageVersionRatings ratingsClosure = versionRatings;
                Package package = _packageRepository.Collection.Single(p => p.Id == ratingsClosure.PackageId && p.Version == ratingsClosure.PackageVersion);
                package.RatingAverage = ratingsClosure.RatingAverage;
                package.RatingsCount  = ratingsClosure.RatingCount;
                packagesToUpdate.Add(package);
            }
            if (packagesToUpdate.Any())
            {
                _packageRepository.Update(packagesToUpdate);
            }
        }
Example #3
0
 private void UpdatePublishedPackageRatings(IEnumerable <PackageVersionRatings> packageVersionRatings,
                                            IEnumerable <PackageDataAggregate> packageDataAggregates)
 {
     foreach (var versionRatings in packageVersionRatings)
     {
         PackageVersionRatings ratingClosure = versionRatings;
         var aggregate = packageDataAggregates.Single(pda => pda.PackageId == ratingClosure.PackageId);
         var publishedPackagesToUpdate = _publishedPackageRepository.Collection.Where(pp => pp.Id == ratingClosure.PackageId).ToList();
         foreach (var publishedPackage in publishedPackagesToUpdate)
         {
             PublishedPackage package = publishedPackage;
             if (versionRatings.PackageId == publishedPackage.Id && versionRatings.PackageVersion == publishedPackage.Version)
             {
                 PackageVersionRatings ratingsToUse = packageVersionRatings.Single(vr => vr.PackageId == package.Id &&
                                                                                   vr.PackageVersion == package.Version);
                 package.VersionRating       = ratingsToUse.RatingAverage;
                 package.VersionRatingsCount = ratingsToUse.RatingCount;
             }
             package.RatingsCount = aggregate.RatingsCount;
             package.Rating       = aggregate.Rating;
         }
         _publishedPackageRepository.Update(publishedPackagesToUpdate);
     }
 }