public VideoManagementViewModel GetVideoManagementViewModel() { IList <VideoManagementViewModelGet> videos = new List <VideoManagementViewModelGet>(); IEnumerable <ISearchVideo> vids = videoRepo.GetAll(); IEnumerable <IDuncan> ratings = ratingRepo.GetAll(); foreach (ISearchVideo video in vids) { VideoManagementViewModelGet model = new VideoManagementViewModelGet { Video = video }; IObjectPair <string, string> titleImage = jsonReader.GetVideoTitleAndImage(video.UrlIdentity); model.Title = titleImage.Object1; model.Thumbnail = titleImage.Object2; IEnumerable <IDuncan> videoRatings = ratings.Where(x => x.VideoIdentity == video.UrlIdentity); model.WatchCount = videoRatings.Count(); if (model.WatchCount > 0) { model.PleaureAverageAndDeviation = new ObjectPair <double, double>() { Object1 = Math.Round(videoRatings.Average(x => x.PleasureIndex), 2, MidpointRounding.AwayFromZero), Object2 = calculator.Deviation(videoRatings.Select(x => x.PleasureIndex)) }; model.ArrouselAverageAndDeviation = new ObjectPair <double, double>() { Object1 = Math.Round(videoRatings.Average(x => x.ArrousalIndex), 2, MidpointRounding.AwayFromZero), Object2 = calculator.Deviation(videoRatings.Select(x => x.ArrousalIndex)) }; model.DominanceAverageAndDeviation = new ObjectPair <double, double>() { Object1 = Math.Round(videoRatings.Average(x => x.DominanceIndex), 2, MidpointRounding.AwayFromZero), Object2 = calculator.Deviation(videoRatings.Select(x => x.DominanceIndex)) }; IList <IObjectPair <string, int> > iabCategoriesNamesAndAverage = new List <IObjectPair <string, int> >(); IList <IObjectPair <int, int> > catCount = new List <IObjectPair <int, int> >(); foreach (int category in videoRatings.Select(x => x.CategoryID)) { ICategory cat = categoryManager.GetCategory(category); bool hasParent = true; while (hasParent) { if (catCount.Select(x => x.Object1).Contains(cat.UniqueID)) { catCount.Where(x => x.Object1 == cat.UniqueID).First().Object2++; } else { catCount.Add(new ObjectPair <int, int>() { Object1 = cat.UniqueID, Object2 = 1 }); } if (cat.ParentID == null) { hasParent = false; } else { cat = categoryManager.GetCategory((int)cat.ParentID); } } } for (int i = 0; i < 4; i++) { IEnumerable <IObjectPair <int, int> > currTierCounts = catCount.Where(x => categoryManager.IsTier(i + 1, x.Object1)); if (currTierCounts.Count() > 0) { IObjectPair <int, int> biggestCat = currTierCounts.Where(x => x.Object2 == currTierCounts.Max(y => y.Object2)).First(); iabCategoriesNamesAndAverage.Add(new ObjectPair <string, int>() { Object1 = categoryManager.GetCategory(biggestCat.Object1).Name, Object2 = biggestCat.Object2 }); } else { break; } } model.IABCategoryNameAndPercentage = iabCategoriesNamesAndAverage; } videos.Add(model); } return(new VideoManagementViewModel() { Get = videos }); }
public VideoManagementViewTest() { video = new VideoManagementViewModelGet(); }