Exemplo n.º 1
0
        public void CalculateForAll()
        {
            var sw = new Stopwatch();

            sw.Start();

            var movies = _movieConnection.GetAllMovies();

            Parallel.ForEach(movies, movie =>
            {
                var reviews = _reviewConnection.GetReviewsByMovieId(movie.Id).ToArray();
                if (reviews.Any())
                {
                    var mean = ((float)(reviews.Sum(r => r.Note))) / reviews.Count();

                    var movieMean = new MovieMean {
                        Title = movie.Title, Id = movie.Id, Mean = mean
                    };
                    _meanConnection.Save(movieMean);

                    if (MeanCalculated != null)
                    {
                        MeanCalculated(movieMean);
                    }
                }
            });

            sw.Stop();
            Console.WriteLine("Calculated {0} means in {1}", movies.Count(), sw.Elapsed);
        }
Exemplo n.º 2
0
 public void Save(MovieMean mean)
 {
     Insert(mean);
 }