Exemple #1
0
        private void LoadCsvMovieData()
        {
            try
            {
                MetaData = new List <MovieMetaDataInstance>();
                TextFieldParser parser = new TextFieldParser("Data\\MovieData\\metadata.csv");
                parser.HasFieldsEnclosedInQuotes = true;
                parser.SetDelimiters(",");
                int lineNumber = 0;
                while (!parser.EndOfData)
                {
                    string[] fields = parser.ReadFields();
                    lineNumber++;
                    if (lineNumber > 1 && fields.Length == 6) //check all data fields are present (ignore non-present data)
                    {
                        MovieMetaDataInstance metaDataInstance = new MovieMetaDataInstance();
                        metaDataInstance.Id          = Convert.ToInt32(fields[0]);
                        metaDataInstance.MovieId     = Convert.ToInt32(fields[1]);
                        metaDataInstance.Title       = Convert.ToString(fields[2]);
                        metaDataInstance.Language    = Convert.ToString(fields[3]);
                        metaDataInstance.Duration    = Convert.ToString(fields[4]);
                        metaDataInstance.ReleaseYear = Convert.ToInt32(fields[5]);

                        MetaData.Add(metaDataInstance);
                    }
                }
            }
            catch (Exception e)
            {
            }
        }
Exemple #2
0
        public List <MovieStatisticsInstance> GetMovieStats(string language = "EN")
        {
            List <StatsDataInstance> summarisedStats = StatsData.GroupBy(x => x.MovieId)
                                                       .Select(x => new StatsDataInstance
            {
                MovieId           = x.First().MovieId,
                WatchDurationMs   = x.Sum(x => x.WatchDurationMs),
                MovieWatchCount   = x.Count(),
                AverageWatchTimeS = (int)(x.Sum(x => x.WatchDurationMs) / x.Count()) / 1000
            }).ToList();

            List <MovieStatisticsInstance> AllMovieStats = new List <MovieStatisticsInstance>();

            foreach (StatsDataInstance movieStatsSummary in summarisedStats)
            {
                MovieMetaDataInstance movieInfo = GetMovieData(movieStatsSummary.MovieId).Where(x => x.Language == language).FirstOrDefault();
                if (movieInfo != null)
                {
                    MovieStatisticsInstance m = new MovieStatisticsInstance();
                    m.MovieId = movieStatsSummary.MovieId;
                    m.Title   = movieInfo.Title;
                    m.AverageWatchDurationS = movieStatsSummary.AverageWatchTimeS;
                    m.Watches     = movieStatsSummary.MovieWatchCount;
                    m.ReleaseYear = movieInfo.ReleaseYear;
                    AllMovieStats.Add(m);
                }
            }
            return(AllMovieStats);
        }
Exemple #3
0
 public void AddMetaData(MovieMetaDataInstance metaDataInstance)
 {
     metaDataInstance.Id = NextId();
     MetaData.Add(metaDataInstance);
 }