Beispiel #1
0
        protected void UpdateParameters(int itemId, int otherItemId)
        {
            List <Rating> users       = (List <Rating>)ItemUsersTable[otherItemId];
            double        gradientSum = 0;

            foreach (Rating r in users)
            {
                // a user had rate itemId and otherItemId
                if (RatingTable.ContainsKey(r.UserId, itemId))
                {
                    gradientSum += 1;
                }
                gradientSum -= Predict(r.UserId, itemId, otherItemId);
            }
            double gradient = gradientSum / (UserItemsTable.Count + 1.0);

            if (reg_l1 < Math.Abs(gradient))
            {
                if (gradient > 0)
                {
                    double update = (gradient - reg_l1) / (1.0 + reg_l2);
                    W[itemId, otherItemId] = (float)update;
                }
                else
                {
                    double update = (gradient + reg_l1) / (1.0 + reg_l2);
                    W[itemId, otherItemId] = (float)update;
                }
            }
            else
            {
                W[itemId, otherItemId] = 0;
            }
        }
Beispiel #2
0
        public double Predict(int userId, int itemId, int excludeItemId)
        {
            double sum = 0.0; // A ranking score

            if (K > 0)
            {
                List <Link> items = (List <Link>)SimilarItemsTable[itemId];
                foreach (Link r in items)
                {
                    // this user had rated this similar item.
                    if (r.To != excludeItemId && RatingTable.ContainsKey(userId, r.To))
                    {
                        sum += W[itemId, r.To];
                    }
                }
            }
            else
            {
                List <Rating> items = (List <Rating>)UserItemsTable[itemId];
                foreach (Rating r in items)
                {
                    if (r.ItemId != excludeItemId)
                    {
                        sum += W[itemId, r.ItemId];
                    }
                }
            }

            return(sum);
        }
 private void MovieDetail_Load(object sender, EventArgs e)
 {
     RatingTable.DeleteByUser(UserInfo.TEST_USER_ID);
     PreviousButton.Enabled = false;
     index  = 0;
     movies = MovieTable.Select();
     SetDataForMovie();
 }
 private void button1_Click(object sender, EventArgs e)
 {
     RatingTable.AddRating(movies[index].Id, UserInfo.TEST_USER_ID, Convert.ToDecimal(RatingButton.Text), CommentTextBox.Text);
     setMyRatingLabel(movies[index].Id);
     movies[index].EnabledRating = false;
     EnableOrDisableAddButton();
     loadCommentsForMovie(movies[index].Id);
     AvgRatingLabel.Text = MovieTable.SelectAvgRatingForMovie(movies[index].Id).ToString("0.##");
 }
 public void setMyRatingLabel(int Movie_ID)
 {
     if (RatingTable.SelectByUserIdAndMovieId(UserInfo.TEST_USER_ID, Movie_ID) == null)
     {
         MyRating.Text = "Dosud nehodnoceno";
     }
     else
     {
         MyRating.Text = RatingTable.SelectByUserIdAndMovieId(UserInfo.TEST_USER_ID, Movie_ID).Rate.ToString("0.##");
     }
 }
Beispiel #6
0
        public static void rateBook(int idB, string desc, int rate)
        {
            Books b = new Books();

            b = getBookById(idB);
            RatingTable RateB = new RatingTable();

            RateB.bookId = b.id;
            //  RateB.borrowerId = b.lenderId;
            RateB.desk       = desc;
            RateB.rating     = rate;
            RateB.dateInsert = DateTime.Now;
            BooksData.rateBook(RateB);
        }
 public void Save(RatingTable item, string UserId)
 {
     if (item.Id == 0)
     {
         item.CreatedBy    = UserId;
         item.CreationDate = DateTime.Now;
         _dbContext.Add(item);
     }
     else
     {
         item.ModifiedBy              = UserId;
         item.ModifiedDate            = DateTime.Now;
         _dbContext.Entry(item).State = EntityState.Modified;
     }
     _dbContext.SaveChanges();
 }
Beispiel #8
0
 public static Rating CastRaitingTableToRating(RatingTable ratingTable)
 {
     if (ratingTable != null)
     {
         Rating Rating = new Rating();
         Rating.bookId     = ratingTable.bookId;
         Rating.borrowerId = ratingTable.borrowerId;
         Rating.desk       = ratingTable.desk;
         Rating.id         = ratingTable.id;
         Rating.rating     = ratingTable.rating;
         //?????????
         //   Rating.kealYhad = ratingTable.rating;
         return(Rating);
     }
     return(null);
 }
        public IActionResult CreateRatingTable(RatingTableIndexViewModel model)
        {
            var UserId = HttpContext.Session.GetString("UserId");

            if (ModelState.IsValid)
            {
                var item = new RatingTable
                {
                    Id          = model.RatingTable.Id,
                    Description = model.RatingTable.Description,
                };
                _RatingTable.Save(item, UserId);
                return(RedirectToAction("Index"));
            }
            else
            {
                return(RedirectToAction("Index", model));
            }
        }
        private void loadCommentsForMovie(int Movie_ID)
        {
            string comment;

            CommentsView.Items.Clear();
            Collection <Rating> ratings = RatingTable.SelectMovieID(Movie_ID);

            foreach (Rating rating in ratings)
            {
                if (rating.Comment == null)
                {
                    comment = "";
                }
                else
                {
                    comment = rating.Comment.ToString();
                }
                UserInfo user = new UserInfo();
                user = UserTable.Select(rating.User_id);
                string[] row          = { user.Nickname, rating.Rate.ToString(), comment };
                var      listViewItem = new ListViewItem(row);
                CommentsView.Items.Add(listViewItem);
            }
        }
Beispiel #11
0
        public static void DeleteAllDataFromDatabase()
        {
            Collection <RatingHistory> ratingHistories1 = RatingHistoryTable.Select();

            foreach (RatingHistory ratingHist in ratingHistories1)
            {
                RatingHistoryTable.Delete(ratingHist.Id);
            }

            Collection <Rating> ratings1 = RatingTable.Select();

            foreach (Rating rate in ratings1)
            {
                RatingTable.Delete(rate.Movie_id, rate.User_id);
            }

            Collection <UserInfo> users1 = UserTable.Select();

            foreach (UserInfo user in users1)
            {
                UserTable.Delete(user.Id);
            }

            Collection <MovieGenre> movieGenres1 = MovieGenreTable.Select();

            foreach (MovieGenre movieGen in movieGenres1)
            {
                MovieGenreTable.Delete(movieGen.Movie_id, movieGen.Genre_id);
            }

            Collection <Genre> genres1 = GenreTable.Select();

            foreach (Genre gen in genres1)
            {
                GenreTable.Delete(gen.Id);
            }

            Collection <MovieActor> movieActors1 = MovieActorTable.Select();

            foreach (MovieActor movieAct in movieActors1)
            {
                MovieActorTable.Delete(movieAct.Actor_id, movieAct.Movie_id);
            }

            Collection <Actor> actors1 = ActorTable.Select();

            foreach (Actor act in actors1)
            {
                ActorTable.Delete(act.Id);
            }

            Collection <Movie> movies1 = MovieTable.Select();

            foreach (Movie mov in movies1)
            {
                MovieTable.Delete(mov.Id);
            }

            Collection <Director> dirs = DirectorTable.Select();

            foreach (Director dir in dirs)
            {
                DirectorTable.Delete(dir.Id);
            }
        }
Beispiel #12
0
        public static void TryAllOperationsOfModel()
        {
            Database db = new Database();

            db.Connect();

            Console.WriteLine("                 Delete all data from database                    ");
            Console.WriteLine("------------------------------------------------------------------");
            DeleteAllDataFromDatabase();

            Console.WriteLine("\n\n                           User                               ");
            Console.WriteLine("------------------------------------------------------------------");
            UserInfo userInfo = new UserInfo();

            userInfo.Id        = 1;
            userInfo.Nickname  = "sob28";
            userInfo.Firstname = "Tonda";
            userInfo.Lastname  = "Sobota";
            userInfo.Email     = "*****@*****.**";
            userInfo.Points    = 42;
            userInfo.Rank      = "Pokročilý";
            userInfo.Sex       = null;
            userInfo.Country   = null;
            userInfo.Shortinfo = null;

            UserTable.Insert(userInfo, db);

            userInfo.Lastname = "Nedela";
            UserTable.Update(userInfo, db);

            UserTable.UserValuation();     // 5.7 Ocenění uživatelů
            UserTable.RecalculatePoints(); // 5.8 Přepočet získaných bodů

            Collection <UserInfo> users = UserTable.Select();

            foreach (UserInfo user in users)
            {
                Console.WriteLine(UserTable.Select(user.Id, db).ToString());
            }

            foreach (UserInfo user in UserTable.SelectUsersWithNumberOfRates(0)) //5.6 Pocet ohodnocených filmu větší než parametr
            {
                Console.WriteLine("User ID: " + user.Id + ", Number of rates: " + user.NumberOfRates);
            }

            Console.WriteLine("\n\n                          Director                            ");
            Console.WriteLine("------------------------------------------------------------------");
            Director director = new Director();

            director.Id          = 1;
            director.Firstname   = "Jakub";
            director.Lastname    = "Novák";
            director.Nationality = "CZ";
            director.Birthplace  = "Brno";
            director.Height      = 1.5m;

            DirectorTable.Insert(director, db);

            director.Lastname = "Holý";
            DirectorTable.Update(director, db);

            Collection <Director> directors = DirectorTable.Select();

            foreach (Director dir in directors)
            {
                Console.WriteLine(DirectorTable.Select(dir.Id, db).ToString());
            }

            Console.WriteLine("\n\n                            Movie                             ");
            Console.WriteLine("------------------------------------------------------------------");
            Movie movie = new Movie();

            movie.Id          = 1;
            movie.Title       = "Zmizení";
            movie.Year        = 2016;
            movie.Time        = 215;
            movie.Language    = "*****@*****.**";
            movie.Description = "Velice dobrý film";
            movie.Country     = "USA";
            movie.Award       = true;
            movie.Premiere    = new DateTime(2017, 05, 06);
            movie.Director_id = director.Id;

            MovieTable.Insert(movie, db);

            movie.Year = 2018;
            MovieTable.Update(movie, db);

            Collection <Movie> movies = MovieTable.Select();

            foreach (Movie mov in movies)
            {
                Console.WriteLine(MovieTable.Select(mov.Id, db).ToString());
                Console.WriteLine("Actor number: " + MovieTable.Select_Actor_Number(mov.Id)); //1.6 Výpis filmů a k nim počet obsazených herců
            }

            Console.WriteLine("\n\n                           Genre                              ");
            Console.WriteLine("------------------------------------------------------------------");
            Genre genre = new Genre();

            genre.Id          = 1;
            genre.Name        = "Thriller";
            genre.Description = "Mrazivý žánr";

            GenreTable.Insert(genre, db);

            genre.Name = "Horror";
            GenreTable.Update(genre, db);

            Collection <Genre> genres = GenreTable.Select();

            foreach (Genre gen in genres)
            {
                Console.WriteLine(GenreTable.Select(gen.Id, db).ToString());
            }

            Console.WriteLine("\n\n                           Actor                              ");
            Console.WriteLine("------------------------------------------------------------------");
            Actor actor = new Actor();

            actor.Id          = 1;
            actor.Firstname   = "Čeněk";
            actor.Lastname    = "Volant";
            actor.Nationality = "CZ";
            actor.Birthplace  = "Ostrava";
            actor.Height      = 1.5m;

            ActorTable.Insert(actor, db);

            actor.Firstname = "Jozef";
            ActorTable.Update(actor, db);

            Collection <Actor> actors = ActorTable.Select();

            foreach (Actor act in actors)
            {
                Console.WriteLine(ActorTable.Select(act.Id, db).ToString());
            }

            Console.WriteLine("\n\n                          Rating                              ");
            Console.WriteLine("------------------------------------------------------------------");
            Rating rating = new Rating();

            rating.Movie_id  = 1;
            rating.User_id   = 1;
            rating.Rate      = 8.5m;
            rating.Dateofadd = new DateTime(2018, 05, 08);
            rating.Comment   = "Nic moc film";

            RatingTable.Insert(rating, db);

            rating.Dateofadd = new DateTime(2018, 05, 09);
            RatingTable.Update(rating, db);

            RatingTable.AddRating(2, 2, rating.Rate, rating.Comment);   // 6.5 Přidání hodnocení

            Collection <Rating> ratings = RatingTable.Select();

            foreach (Rating rate in ratings)
            {
                Console.WriteLine(RatingTable.SelectMovieID(rate.Movie_id, db).ToString());
            }

            Console.WriteLine("\n\n                        Rating History                        ");
            Console.WriteLine("------------------------------------------------------------------");
            RatingHistory ratingHistory = new RatingHistory();

            ratingHistory.Id                 = 1;
            ratingHistory.Rate               = 9.5m;
            ratingHistory.Dateofchange       = new DateTime(2018, 04, 30);
            ratingHistory.Comment            = "Uleželo se mi to v hlavě";
            ratingHistory.Rating_movie_id    = 1;
            ratingHistory.Rating_userinfo_id = 1;

            RatingHistoryTable.Insert(ratingHistory, db);

            ratingHistory.Rate = 9m;
            RatingHistoryTable.Update(ratingHistory, db);

            Collection <RatingHistory> ratingHistories = RatingHistoryTable.Select();

            foreach (RatingHistory ratingHist in ratingHistories)
            {
                Console.WriteLine(RatingHistoryTable.Select(ratingHist.Id, db).ToString());
            }

            Console.WriteLine("\n\n                         Movie Genre                          ");
            Console.WriteLine("------------------------------------------------------------------");
            MovieGenre movieGenre = new MovieGenre();

            movieGenre.Movie_id  = 1;
            movieGenre.Genre_id  = 1;
            movieGenre.dateOfAdd = new DateTime(2016, 03, 22);

            MovieGenreTable.Insert(movieGenre, db);

            movieGenre.dateOfAdd = new DateTime(2016, 03, 25);
            MovieGenreTable.Update(movieGenre, db);

            Collection <MovieGenre> movieGenres = MovieGenreTable.Select();

            foreach (MovieGenre movieGen in movieGenres)
            {
                Console.WriteLine(MovieGenreTable.SelectMovieId(movieGen.Movie_id, db).ToString());
            }

            Console.WriteLine("\n\n                        Movie Actor                           ");
            Console.WriteLine("------------------------------------------------------------------");
            MovieActor movieActor = new MovieActor();

            movieActor.Movie_id = 1;
            movieActor.Actor_id = 1;
            movieActor.Role     = "Hlavní hrdina";
            movieActor.Fee      = 22000;

            MovieActorTable.Insert(movieActor, db);

            movieActor.Fee = 25000;
            MovieActorTable.Update(movieActor, db);

            Collection <MovieActor> movieActors = MovieActorTable.Select();

            foreach (MovieActor movieAct in movieActors)
            {
                Console.WriteLine(MovieActorTable.SelectMovieId(movieAct.Movie_id, db).ToString());
            }

            Console.WriteLine("\n\n");
            db.Close();
        }