Exemple #1
0
        public void JsonReaderTitleReturnNull()
        {
            IObjectPair <string, string> titleImage = readerJson.GetVideoTitleAndImage("HaHa");

            Assert.Null(titleImage.Object1);
            Assert.Null(titleImage.Object2);
        }
Exemple #2
0
        public void JSonReaderTitle()
        {
            IObjectPair <string, string> titleImage = readerJson.GetVideoTitleAndImage("KWeGeUcF");

            Assert.Equal("Nyan Cat Really Exists and He Lives in Russia", titleImage.Object1);
            Assert.Equal("https://cdn.jwplayer.com/thumbs/KWeGeUcF-720.jpg", titleImage.Object2);
        }
        public void GetParentIDBently()
        {
            IObjectPair <int, int> parentID = category.GetParentTiers(3);

            Assert.Equal(1, parentID.Object1);
            Assert.Equal(3, parentID.Object2);
        }
        public void GetParentIDHonda()
        {
            IObjectPair <int, int> parentID = category.GetParentTiers(4);

            Assert.Equal(1, parentID.Object1);
            Assert.Equal(4, parentID.Object2);
        }
        public bool CreateUser(RegisterViewModel vm)
        {
            IObjectPair <IRegisterUser, string> generatedUserPassPair = registerHandler.CreateUser(userRepo.GetAll(), vm.Firstname, vm.Lastname, vm.Email, vm.IsAdmin, vm.Phonenumber, vm.Country, vm.City, vm.Streetname, vm.Zip);

            try
            {
                userRepo.AddUser(generatedUserPassPair.Object1);
                ILoginUser user = userRepo.GetUserByName(generatedUserPassPair.Object1.UserName);
                if (vm.ProfilePicture != null)
                {
                    pictureHandler.PictureCopy(vm.ProfilePicture, user.UserID);
                }
                EMailSender          eMailer = new EMailSender(GlobalSettings.MailSettings.Client);
                IMessageSettableMail mail    = new MessageMail(new System.Net.Mail.MailMessage());
                mail.MakeMail(GlobalSettings.MailSettings.NewUserSubject, String.Format(GlobalSettings.MailSettings.NewUserContent, user.UserName, generatedUserPassPair.Object2), user.Email);
                eMailer.Send(mail, GlobalSettings.MailSettings.NoReplyAdress, GlobalSettings.MailSettings.NetworkCredentials, GlobalSettings.MailSettings.EnableSSL, GlobalSettings.MailSettings.Port);
            }
            catch
            {
                return(false);
                //throw new ArgumentException("Something went wrong with the registration. Check Inner Exception for specific information: /n" + excepton.InnerException.Message);
            }
            return(true);
        }
        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
            });
        }
Exemple #7
0
        public void FindDivergents(IEnumerable <IRating> _ratings)
        {
            IList <IObjectPair <int, int> > countCatagorie1 = new List <IObjectPair <int, int> >();
            IList <IObjectPair <int, int> > countCatagorie2 = new List <IObjectPair <int, int> >();
            int count     = _ratings.Count();
            int pleassure = 0;
            int dominance = 0;
            int arrousel  = 0;

            foreach (IRating rating in _ratings)
            {//generates count, total PAD, Counts catagories
                IObjectPair <int, int> categoryIDs = categoryReverser.GetParentTiers(rating.CategoryID);
                countCatagorie1 = CatagoryInList(countCatagorie1, categoryIDs.Object1);
                countCatagorie2 = CatagoryInList(countCatagorie2, categoryIDs.Object2);
                pleassure      += rating.PleasureIndex;
                dominance      += rating.DominanceIndex;
                arrousel       += rating.ArrousalIndex;
            }
            if (count <= maximumRatings)
            {     //prevents video from getting more ratings
                if (count <= 3)
                { // video's with less tha 3 can't be checked
                    return;
                }
                if (!CatagoryBigEnough(countCatagorie1, iabToleranceTier1 * count) || !CatagoryBigEnough(countCatagorie2, iabToleranceTier2 * count))
                {//video's that don't have polarized category ratings can be finished early
                    return;
                }
            }
            IEnumerable <int> biggestCatagories = BiggestCategories(countCatagorie2, count);
            double            averageP          = (double)pleassure / count;
            double            averageA          = (double)arrousel / count;
            double            averageD          = (double)dominance / count;

            foreach (IRating rating in _ratings)
            {//2 of 3 divergent pads>>>pad is divergent, tier2 is not in the list with biggest catagories>>>iabdivergent
                int divergentCount = 0;
                if ((rating.PleasureIndex + averageP) % averageP > padTolerance)
                {
                    divergentCount++;
                }
                if ((rating.ArrousalIndex + averageA) % averageA > padTolerance)
                {
                    divergentCount++;
                }
                if ((rating.DominanceIndex + averageD) % averageD > padTolerance)
                {
                    divergentCount++;
                }
                if (divergentCount >= 2)
                {
                    rating.IsPADDivergent = true;
                }
                if (!biggestCatagories.Contains(categoryReverser.GetParentTiers(rating.CategoryID).Object2))
                {
                    rating.IsIABDivergent = true;
                }
            }
            IList <IRating> divergentRatings = new List <IRating>();

            foreach (IRating rating in _ratings)
            {
                if (rating.IsIABDivergent || rating.IsPADDivergent)
                {
                    divergentRatings.Add(rating);
                }
            }
            OnDivergentRatings(_ratings.First().VideoIdentity, divergentRatings);
        }