示例#1
0
        private async Task UpdateRatings(RatingData data, Movie movie)
        {
            var ratings = new List <Rating>();
            var sources = await listsDbAccess.GetRatingSources();

            var i = 1;

            foreach (var source in sources)
            {
                var   property   = data.GetType().GetProperties().ToList().Single(x => x.Name.Equals(source.Name, StringComparison.OrdinalIgnoreCase));
                var   score      = (string)property.GetValue(data);
                float?floatScore = null;

                if (!string.IsNullOrEmpty(score))
                {
                    floatScore = float.Parse(score);
                }

                var rating = new Rating
                {
                    Source   = source,
                    SourceId = source.Id,
                    Movie    = movie,
                    MovieId  = movie.Id,
                    Id       = i.ToString(),
                    Score    = floatScore
                };

                ratings.Add(rating);
                i++;
            }

            movie.Ratings = ratings;
        }