예제 #1
0
        /// <summary>
        /// removes playlist and button connected with it
        /// </summary>
        /// <param name="i">tg of removed button</param>
        /// <param name="usrID">id of current user</param>
        /// <param name="usr">Current user</param>
        private void Remove_Playlist(int i, int usrID, User usr)
        {
            MovieDatabaseEntities db = new MovieDatabaseEntities();

            foreach (Playlist pl in db.Playlists)
            {
                if (pl.PlaylistID == i && pl.UserID == usrID)
                {
                    db.Playlists.Remove(pl);
                }
            }

            foreach (List_Of_Playlists lop in db.List_Of_Playlists)
            {
                if (lop.ID == i && lop.UserID == usrID)
                {
                    db.List_Of_Playlists.Remove(lop);
                    usr.Number_Of_Playlists--;
                }
            }
            db.SaveChanges();

            deletePlaylistButton((int)buttonToBeRemoved.Tag);

            //Playlists_Panel.Controls.Remove(buttonToBeRemoved);
            buttonToBeRemoved = null;

            foreach (MonoFlat_Button but in Playlists_Panel.Controls)
            {
                if ((int)but.Tag > i)
                {
                    but.Location = new Point(but.Location.X - 95, but.Location.Y);
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Allows to change name of film if we click on proper column in dataGridView1
        /// </summary>
        /// <param name="moviename">Movie name we want to check for.</param>
        /// <param name="filename">File name of the file we want to change</param>

        public static void MovieNameChange(string moviename, string filename)
        {
            try{
                MovieDatabaseEntities db = new MovieDatabaseEntities();

                var CurrentUserID = MainApplicationWindow.getCurrentUserID();
                var result        = db.Favourite_Hated.SingleOrDefault(o => o.MainMovieList.File_Name == filename && o.UserID == CurrentUserID);


                if (result.Movie_Name != moviename && result.UserID == CurrentUserID)
                {
                    result.Movie_Name = moviename;
                    db.SaveChanges();
                }
            }
            catch (DbEntityValidationException e)
            { //In case of error while adding stuff to database
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
예제 #3
0
        /// <summary>
        /// Add new path to the file whose directory was changed, to database
        /// </summary>
        /// <param name="newPath">a path that is inserted instead of previous one</param>
        /// <param name="file_name">a name of file that will be updated</param>
        public void AddNewPathToDatabase(string newPath, string file_name)
        {
            try
            {
                MovieDatabaseEntities db = new MovieDatabaseEntities();
                var result = db.MainMovieLists.SingleOrDefault(o => o.File_Name == file_name);

                result.File_Path = newPath;
                db.SaveChanges();
            }
            catch (DbEntityValidationException e)
            { //In case of error while adding stuff to database
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
예제 #4
0
        /// <summary>
        /// Adds information if movie is added to favourites, hated or none of them
        /// </summary>
        /// <param name="whichcase">Determines if movie is added to favourites or hated</param>
        /// <param name="UserName">The name of the user that is log in</param>
        /// <param name="film">The name of file that we want to set</param>
        public static void AddFavouriteOrHated(int whichcase, string UserName, string film)
        {
            try
            {
                MovieDatabaseEntities db = new MovieDatabaseEntities();

                var result = db.MainMovieLists.SingleOrDefault(o => o.File_Name == film);

                var usr = db.Users.SingleOrDefault(o => o.Username == UserName);

                int ID = usr.UserID;

                var search = db.Favourite_Hated.SingleOrDefault(o => o.FilmID == result.ID && o.UserID == ID);

                if (search == null)
                {
                    Favourite_Hated favourite = new Favourite_Hated();

                    favourite.FilmID = result.ID;
                    favourite.UserID = usr.UserID;
                    favourite.LikeOrDislike = whichcase;

                    db.Favourite_Hated.Add(favourite);
                    db.SaveChanges();
                }
                else if (search.LikeOrDislike != whichcase)
                {
                    search.LikeOrDislike = whichcase;
                    db.SaveChanges();
                }
            }
            catch (DbEntityValidationException e)
            { //In case of error while adding stuff to database
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                            ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
예제 #5
0
        /// <summary>
        /// Adds information if movie is added to favourites, hated or none of them
        /// </summary>
        /// <param name="whichcase">Determines if movie is added to favourites or hated</param>
        /// <param name="UserName">The name of the user that is log in</param>
        /// <param name="film">The name of file that we want to set</param>
        public static void AddFavouriteOrHated(int whichcase, string UserName, string film)
        {
            try
            {
                MovieDatabaseEntities db = new MovieDatabaseEntities();

                var result = db.MainMovieLists.SingleOrDefault(o => o.File_Name == film);

                var usr = db.Users.SingleOrDefault(o => o.Username == UserName);

                int ID = usr.UserID;

                var search = db.Favourite_Hated.SingleOrDefault(o => o.FilmID == result.ID && o.UserID == ID);

                if (search == null)
                {
                    Favourite_Hated favourite = new Favourite_Hated();

                    favourite.FilmID        = result.ID;
                    favourite.UserID        = usr.UserID;
                    favourite.LikeOrDislike = whichcase;

                    db.Favourite_Hated.Add(favourite);
                    db.SaveChanges();
                }
                else if (search.LikeOrDislike != whichcase)
                {
                    search.LikeOrDislike = whichcase;
                    db.SaveChanges();
                }
            }
            catch (DbEntityValidationException e)
            { //In case of error while adding stuff to database
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
 public static void changeNameOfPlaylist(string newName)
 {
     MovieDatabaseEntities db = new MovieDatabaseEntities();
     int usrID = getCurrentUserID();
     var playlist = db.List_Of_Playlists.SingleOrDefault(o => o.ID == (int)buttonToChangeName.Tag && o.UserID == usrID);
     playlist.Playlist_Name = newName;
     db.SaveChanges();
     buttonToChangeName.Text = playlist.Playlist_Name;
     buttonToChangeName = null;
 }
예제 #7
0
        public static void changeNameOfPlaylist(string newName)
        {
            MovieDatabaseEntities db = new MovieDatabaseEntities();
            int usrID    = getCurrentUserID();
            var playlist = db.List_Of_Playlists.SingleOrDefault(o => o.ID == (int)buttonToChangeName.Tag && o.UserID == usrID);

            playlist.Playlist_Name = newName;
            db.SaveChanges();
            buttonToChangeName.Text = playlist.Playlist_Name;
            buttonToChangeName      = null;
        }
예제 #8
0
        /// <summary>
        /// Adds a movie to database taking into consideration all possible exceptions
        /// </summary>
        /// <param name="FileName">Name of the movie filename</param>
        public static void AddMovie(string FilePath)
        { //Adds a movie id, movie name and movie path to database
            try
            {
                string FileName = System.IO.Path.GetFileNameWithoutExtension(FilePath);

                MovieDatabaseEntities db       = new MovieDatabaseEntities();
                MainMovieList         objMovie = new MainMovieList();

                if (db.MainMovieLists.Any(o => o.File_Name == FileName))
                {
                    Console.WriteLine(FileName + " is already in the MainMovieList table");
                }
                else
                {
                    objMovie.File_Name = FileName;
                    objMovie.File_Path = FilePath;
                    db.MainMovieLists.Add(objMovie);
                    db.SaveChanges();
                }

                int usrId = MainApplicationWindow.getCurrentUserID();
                Console.WriteLine("Current username: "******"\n");

                if (db.Favourite_Hated.Any(o => o.FilmID == objMovie.ID && o.UserID == usrId))
                {
                    Console.WriteLine(FileName + " is already in the Favourite_Hated table");
                }
                else
                {
                    Console.WriteLine("Adding " + FileName + " to the Favourite_Hated table for user with id: " + usrId);
                    User usr     = new User();
                    var  searchs = db.Users.SingleOrDefault(o => o.UserID == usrId);
                    AddFavouriteOrHated(-1, searchs.Username, FileName);
                }
                //Jezeli nie dasz sobie rady ze stworzeniem query: stworz funckje foreach i sprawdz czy dany film ma konkretny usrname i filmid
            }
            catch (DbEntityValidationException e)
            { //In case of error while adding stuff to database
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
예제 #9
0
        /// <summary>
        /// Removes the movie from database if its directory was changed and user does not want to give a new one
        /// </summary>
        /// <param name="file_name">The name of file to be deleted</param>
        public void DeleteOldRowFromDatabase(string file_name)
        {
            MovieDatabaseEntities db = new MovieDatabaseEntities();
            var FilmID =
                (from mov in db.MainMovieLists
                 where mov.File_Name == file_name
                 select mov.ID).FirstOrDefault();

            var DeletedFromFavourite_Hated =
                from fav in db.Favourite_Hated
                where fav.FilmID == FilmID
                select fav;

            var DeletedFromPlaylist =
                from pl in db.Playlists
                where pl.FilmID == FilmID
                select pl;

            var DeletedFromMainMovieLists =
                from mov in db.MainMovieLists
                where mov.ID == FilmID
                select mov;

            foreach (var pair in DeletedFromFavourite_Hated)
            {
                db.Favourite_Hated.Remove(pair);
            }

            foreach (var playlist in DeletedFromPlaylist)
            {
                db.Playlists.Remove(playlist);
            }

            foreach (var mov in DeletedFromMainMovieLists)
            {
                db.MainMovieLists.Remove(mov);
            }

            try
            {
                db.SaveChanges();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                // Provide for exceptions.
            }
        }
예제 #10
0
        /// <summary>
        /// Adds information if movie is added to playlist
        /// </summary>
        /// <param name="idOfPlaylist">Determines if movie is added to playlist</param>
        /// <param name="UserName">The name of the user that is log in</param>
        /// <param name="film">The name of file that we want to set</param>
        public static void AddToPlaylist(int idOfPlaylist, string UserName, string film)
        {
            try
            {
                MovieDatabaseEntities db = new MovieDatabaseEntities();

                var movie = db.MainMovieLists.SingleOrDefault(o => o.File_Name == film);

                var usr = db.Users.SingleOrDefault(o => o.Username == UserName);

                int usrID = usr.UserID;

                int maxID = -10;
                foreach (var pl in db.Playlists)
                {
                    if (pl.ID > maxID)
                    {
                        maxID = pl.ID;
                    }
                }

                Playlist playlist = new Playlist();

                playlist.ID         = maxID + 1;
                playlist.FilmID     = movie.ID;
                playlist.UserID     = usr.UserID;
                playlist.PlaylistID = idOfPlaylist;

                db.Playlists.Add(playlist);
                db.SaveChanges();
            }
            catch (DbEntityValidationException e)
            { //In case of error while adding stuff to database
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
예제 #11
0
        /// <summary>
        /// Removes record from Playlist in db with specified userID and filmID
        /// </summary>
        /// <param name="film">film that has to be removed from Playlist for current user</param>
        public static void RemoveFromPlaylist(Movies film, int playlistID)
        {
            var userID = MainApplicationWindow.getCurrentUserID();
            MovieDatabaseEntities db = new MovieDatabaseEntities();

            var queryPlaylist = from Playlist in db.Playlists
                                where Playlist.UserID == userID &&
                                Playlist.FilmID == film.MovieID &&
                                Playlist.PlaylistID == playlistID
                                select Playlist;

            foreach (var del in queryPlaylist)
            {
                db.Playlists.Remove(del);
            }
            db.SaveChanges();
        }
예제 #12
0
        /// <summary>
        /// Add playlist to List_Of_Playlists in database
        /// </summary>
        public void AddPlaylistToDataBase()
        {
            if (PlaylistButtonActive)
            {
                PlaylistButtonActive = false;
                MovieDatabaseEntities db = new MovieDatabaseEntities();
                var UserID = getCurrentUserID();


                var usr = db.Users.SingleOrDefault(o => o.UserID == UserID);
                var i   = usr.Number_Of_Playlists;
                usr.Number_Of_Playlists++; // Increase Number_Of_Playlists for the Current user
                List_Of_Playlists playlist = new List_Of_Playlists();

                while (true)
                {
                    var pl = db.List_Of_Playlists.SingleOrDefault(o => o.ID == i + 1 && o.UserID == usr.UserID);
                    if (pl != null)
                    {
                        i++;
                    }
                    else
                    {
                        break;
                    }
                }

                playlist.ID            = i + 1;
                playlist.UserID        = UserID;
                playlist.Playlist_Name = "Playlist" + playlist.ID;

                db.List_Of_Playlists.Add(playlist);
                db.SaveChanges();

                createPlaylistButton(i);
                PlaylistButtonActive = true;
            }
        }
예제 #13
0
        private void monoFlat_Button1_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            User user = new User();
            MovieDatabaseEntities db = new MovieDatabaseEntities();
            validation = true;
            loginError[i] = new MonoFlat.MonoFlat_NotificationBox();
            loginError[i].BorderCurve = 8;
            loginError[i].Font = new System.Drawing.Font("Tahoma", 9F);
            loginError[i].Image = null;
            loginError[i].Location = new System.Drawing.Point(this.Width / 2 - 100, this.Height - 180);
            loginError[i].MinimumSize = new System.Drawing.Size(100, 40);
            loginError[i].Name = "monoFlat_NotificationBox1";
            loginError[i].NotificationType = MonoFlat.MonoFlat_NotificationBox.Type.Error;
            loginError[i].RoundCorners = true;
            loginError[i].ShowCloseButton = false;
            loginError[i].Size = new System.Drawing.Size(200, 85);
            loginError[i].TabIndex = 6;
            loginError[i].MouseHover += new EventHandler(LoginError_MouseHover);
            if (monoFlat_TextBox2.Text == monoFlat_TextBox3.Text)
            {
                foreach (var username in db.Users)
                {
                    if (username.Username==monoFlat_TextBox1.Text)
                    {
                        loginError[i].Text = "Username Error:\nThis user name is already occupied.";
                        monoFlat_ThemeContainer1.Controls.Add(loginError[i]);
                        loginError[i].BringToFront();
                        validation = false;
                        monoFlat_TextBox1.Text = null;
                        break;
                    }
                    if (monoFlat_TextBox1.Text.Length < 3)
                    {
                        loginError[i].Text = "Username Error:\nUsername must contatin at least 3 characters.";
                        monoFlat_ThemeContainer1.Controls.Add(loginError[i]);
                        loginError[i].BringToFront();
                        validation = false;
                        monoFlat_TextBox1.Text = null;
                        break;
                    }
                    if (monoFlat_TextBox2.Text.Length < 5)
                    {
                        loginError[i].Text = "Password Error:\nPassword must be of at least 5 characters.";
                        monoFlat_ThemeContainer1.Controls.Add(loginError[i]);
                        loginError[i].BringToFront();
                        validation = false;
                        break;
                    }
                }
            }
            else
            {
                loginError[i].Text = "Password Error:\nPasswords don't match!";
                monoFlat_ThemeContainer1.Controls.Add(loginError[i]);
                loginError[i].BringToFront();
                validation = false;
            }
            if (validation)
            {
                user.Username = monoFlat_TextBox1.Text;
                user.Password = monoFlat_TextBox2.Text;
                user.Number_Of_Playlists = 0;
                db.Users.Add(user);
                db.SaveChanges();
                validation = false;

                var successPrompt = new MonoFlat.MonoFlat_NotificationBox();
                successPrompt.BorderCurve = 8;
                successPrompt.Font = new System.Drawing.Font("Tahoma", 9F);
                successPrompt.Image = null;
                successPrompt.Location = new System.Drawing.Point(this.Width / 2 - 150, this.Height/2 -50);
                successPrompt.Name = "monoFlat_NotificationBox1";
                successPrompt.NotificationType = MonoFlat.MonoFlat_NotificationBox.Type.Success;
                successPrompt.RoundCorners = true;
                successPrompt.ShowCloseButton = false;
                successPrompt.Size = new System.Drawing.Size(300, 105);
                successPrompt.Text = ("You have succesfully created your account " + monoFlat_TextBox1.Text +
                                        ".\nGo now and log in.\nThis window will shutdown in a moment");
                monoFlat_ThemeContainer1.Controls.Add(successPrompt);
                successPrompt.BringToFront();
                foreach (Control c in this.Controls)
                    c.Enabled = false;

                System.Threading.Thread.Sleep(5000);

                this.Dispose();
            }
            i++;
            Cursor.Current = Cursors.Default;
        }
예제 #14
0
        /// <summary>
        /// Removes record from Playlist in db with specified userID and filmID
        /// </summary>
        /// <param name="film">film that has to be removed from Playlist for current user</param>
        public static void RemoveFromPlaylist(Movies film, int playlistID)
        {
            var userID = MainApplicationWindow.getCurrentUserID();
            MovieDatabaseEntities db = new MovieDatabaseEntities();

            var queryPlaylist = from Playlist in db.Playlists
                                where Playlist.UserID == userID &&
                                Playlist.FilmID == film.MovieID &&
                                Playlist.PlaylistID == playlistID
                                select Playlist;

            foreach (var del in queryPlaylist)
            {
                db.Playlists.Remove(del);
            }
            db.SaveChanges();
        }
예제 #15
0
        /// <summary>
        /// Allows to change name of film if we click on proper column in dataGridView1
        /// </summary>
        /// <param name="moviename">Movie name we want to check for.</param>
        /// <param name="filename">File name of the file we want to change</param>
        public static void MovieNameChange(string moviename, string filename)
        {
            try{
            MovieDatabaseEntities db = new MovieDatabaseEntities();

            var CurrentUserID = MainApplicationWindow.getCurrentUserID();
            var result = db.Favourite_Hated.SingleOrDefault(o => o.MainMovieList.File_Name == filename && o.UserID == CurrentUserID);

            if (result.Movie_Name != moviename && result.UserID == CurrentUserID )
            {
                result.Movie_Name = moviename;
                db.SaveChanges();
            }
            }
            catch (DbEntityValidationException e)
            { //In case of error while adding stuff to database
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                            ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
예제 #16
0
        /// <summary>
        /// Adds information if movie is added to playlist
        /// </summary>
        /// <param name="idOfPlaylist">Determines if movie is added to playlist</param>
        /// <param name="UserName">The name of the user that is log in</param>
        /// <param name="film">The name of file that we want to set</param>
        public static void AddToPlaylist(int idOfPlaylist, string UserName, string film)
        {
            try
            {
                MovieDatabaseEntities db = new MovieDatabaseEntities();

                var movie = db.MainMovieLists.SingleOrDefault(o => o.File_Name == film);

                var usr = db.Users.SingleOrDefault(o => o.Username == UserName);

                int usrID = usr.UserID;

                int maxID = -10;
                foreach (var pl in db.Playlists)
                    if (pl.ID > maxID)
                        maxID = pl.ID;

                    Playlist playlist = new Playlist();

                    playlist.ID = maxID + 1;
                    playlist.FilmID = movie.ID;
                    playlist.UserID = usr.UserID;
                    playlist.PlaylistID = idOfPlaylist;

                    db.Playlists.Add(playlist);
                    db.SaveChanges();
            }
            catch (DbEntityValidationException e)
            { //In case of error while adding stuff to database
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                            ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
예제 #17
0
        /// <summary>
        /// Adds a movie to database taking into consideration all possible exceptions
        /// </summary>
        /// <param name="FileName">Name of the movie filename</param>
        public static void AddMovie(string FilePath)
        {
            //Adds a movie id, movie name and movie path to database
            try
            {
                string FileName = System.IO.Path.GetFileNameWithoutExtension(FilePath);

                MovieDatabaseEntities db = new MovieDatabaseEntities();
                MainMovieList objMovie = new MainMovieList();

                if (db.MainMovieLists.Any(o => o.File_Name == FileName))
                {
                    Console.WriteLine(FileName + " is already in the MainMovieList table");
                }
                else
                {
                    objMovie.File_Name = FileName;
                    objMovie.File_Path = FilePath;
                    db.MainMovieLists.Add(objMovie);
                    db.SaveChanges();
                }

                int usrId = MainApplicationWindow.getCurrentUserID();
                Console.WriteLine("Current username: "******"\n");

                    if (db.Favourite_Hated.Any(o => o.FilmID == objMovie.ID && o.UserID == usrId))
                    {
                        Console.WriteLine(FileName + " is already in the Favourite_Hated table");
                    }
                    else
                    {
                        Console.WriteLine("Adding " + FileName + " to the Favourite_Hated table for user with id: " + usrId);
                        User usr = new User();
                        var searchs = db.Users.SingleOrDefault(o => o.UserID == usrId);
                        AddFavouriteOrHated(-1, searchs.Username, FileName);
                    }
                //Jezeli nie dasz sobie rady ze stworzeniem query: stworz funckje foreach i sprawdz czy dany film ma konkretny usrname i filmid

            }
            catch (DbEntityValidationException e)
            { //In case of error while adding stuff to database
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                            ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
        /// <summary>
        /// Add new path to the file whose directory was changed, to database 
        /// </summary>
        /// <param name="newPath">a path that is inserted instead of previous one</param>
        /// <param name="file_name">a name of file that will be updated</param>
        public void AddNewPathToDatabase(string newPath, string file_name)
        {
            try
            {
                MovieDatabaseEntities db = new MovieDatabaseEntities();
                var result = db.MainMovieLists.SingleOrDefault(o => o.File_Name == file_name);

                result.File_Path = newPath;
                db.SaveChanges();
            }
            catch (DbEntityValidationException e)
            { //In case of error while adding stuff to database
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                            ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
        /// <summary>
        /// Add playlist to List_Of_Playlists in database
        /// </summary>
        public void AddPlaylistToDataBase()
        {
            if (PlaylistButtonActive)
            {
                PlaylistButtonActive = false;
                MovieDatabaseEntities db = new MovieDatabaseEntities();
                var UserID = getCurrentUserID();

                var usr = db.Users.SingleOrDefault(o => o.UserID == UserID);
                var i = usr.Number_Of_Playlists;
                usr.Number_Of_Playlists++; // Increase Number_Of_Playlists for the Current user
                List_Of_Playlists playlist = new List_Of_Playlists();

                while(true)
                {
                    var pl = db.List_Of_Playlists.SingleOrDefault(o => o.ID == i + 1 && o.UserID == usr.UserID);
                    if(pl != null)
                    {
                        i++;
                    }
                    else
                    {
                        break;
                    }
                }

                playlist.ID = i + 1;
                playlist.UserID = UserID;
                playlist.Playlist_Name = "Playlist" + playlist.ID;

                db.List_Of_Playlists.Add(playlist);
                db.SaveChanges();

                createPlaylistButton(i);
                PlaylistButtonActive = true;
            }
        }
예제 #20
0
        private void monoFlat_Button1_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            User user = new User();
            MovieDatabaseEntities db = new MovieDatabaseEntities();

            validation                     = true;
            loginError[i]                  = new MonoFlat.MonoFlat_NotificationBox();
            loginError[i].BorderCurve      = 8;
            loginError[i].Font             = new System.Drawing.Font("Tahoma", 9F);
            loginError[i].Image            = null;
            loginError[i].Location         = new System.Drawing.Point(this.Width / 2 - 100, this.Height - 180);
            loginError[i].MinimumSize      = new System.Drawing.Size(100, 40);
            loginError[i].Name             = "monoFlat_NotificationBox1";
            loginError[i].NotificationType = MonoFlat.MonoFlat_NotificationBox.Type.Error;
            loginError[i].RoundCorners     = true;
            loginError[i].ShowCloseButton  = false;
            loginError[i].Size             = new System.Drawing.Size(200, 85);
            loginError[i].TabIndex         = 6;
            loginError[i].MouseHover      += new EventHandler(LoginError_MouseHover);
            if (monoFlat_TextBox2.Text == monoFlat_TextBox3.Text)
            {
                foreach (var username in db.Users)
                {
                    if (username.Username == monoFlat_TextBox1.Text)
                    {
                        loginError[i].Text = "Username Error:\nThis user name is already occupied.";
                        monoFlat_ThemeContainer1.Controls.Add(loginError[i]);
                        loginError[i].BringToFront();
                        validation             = false;
                        monoFlat_TextBox1.Text = null;
                        break;
                    }
                    if (monoFlat_TextBox1.Text.Length < 3)
                    {
                        loginError[i].Text = "Username Error:\nUsername must contatin at least 3 characters.";
                        monoFlat_ThemeContainer1.Controls.Add(loginError[i]);
                        loginError[i].BringToFront();
                        validation             = false;
                        monoFlat_TextBox1.Text = null;
                        break;
                    }
                    if (monoFlat_TextBox2.Text.Length < 5)
                    {
                        loginError[i].Text = "Password Error:\nPassword must be of at least 5 characters.";
                        monoFlat_ThemeContainer1.Controls.Add(loginError[i]);
                        loginError[i].BringToFront();
                        validation = false;
                        break;
                    }
                }
            }
            else
            {
                loginError[i].Text = "Password Error:\nPasswords don't match!";
                monoFlat_ThemeContainer1.Controls.Add(loginError[i]);
                loginError[i].BringToFront();
                validation = false;
            }
            if (validation)
            {
                user.Username            = monoFlat_TextBox1.Text;
                user.Password            = monoFlat_TextBox2.Text;
                user.Number_Of_Playlists = 0;
                db.Users.Add(user);
                db.SaveChanges();
                validation = false;

                var successPrompt = new MonoFlat.MonoFlat_NotificationBox();
                successPrompt.BorderCurve      = 8;
                successPrompt.Font             = new System.Drawing.Font("Tahoma", 9F);
                successPrompt.Image            = null;
                successPrompt.Location         = new System.Drawing.Point(this.Width / 2 - 150, this.Height / 2 - 50);
                successPrompt.Name             = "monoFlat_NotificationBox1";
                successPrompt.NotificationType = MonoFlat.MonoFlat_NotificationBox.Type.Success;
                successPrompt.RoundCorners     = true;
                successPrompt.ShowCloseButton  = false;
                successPrompt.Size             = new System.Drawing.Size(300, 105);
                successPrompt.Text             = ("You have succesfully created your account " + monoFlat_TextBox1.Text +
                                                  ".\nGo now and log in.\nThis window will shutdown in a moment");
                monoFlat_ThemeContainer1.Controls.Add(successPrompt);
                successPrompt.BringToFront();
                foreach (Control c in this.Controls)
                {
                    c.Enabled = false;
                }

                System.Threading.Thread.Sleep(5000);

                this.Dispose();
            }
            i++;
            Cursor.Current = Cursors.Default;
        }
        /// <summary>
        /// removes playlist and button connected with it
        /// </summary>
        /// <param name="i">tg of removed button</param>
        /// <param name="usrID">id of current user</param>
        /// <param name="usr">Current user</param>
        private void Remove_Playlist(int i, int usrID, User usr)
        {
            MovieDatabaseEntities db = new MovieDatabaseEntities();
            foreach (Playlist pl in db.Playlists)
            {
                if (pl.PlaylistID == i && pl.UserID == usrID)
                    db.Playlists.Remove(pl);
            }

            foreach (List_Of_Playlists lop in db.List_Of_Playlists)
            {
                if (lop.ID == i && lop.UserID == usrID)
                {
                    db.List_Of_Playlists.Remove(lop);
                    usr.Number_Of_Playlists--;
                }
            }
            db.SaveChanges();

            deletePlaylistButton((int)buttonToBeRemoved.Tag);

            //Playlists_Panel.Controls.Remove(buttonToBeRemoved);
            buttonToBeRemoved = null;

            foreach (MonoFlat_Button but in Playlists_Panel.Controls)
            {
                if ((int)but.Tag > i)
                {
                    but.Location = new Point(but.Location.X - 95, but.Location.Y);
                }
            }
        }
        /// <summary>
        /// Removes the movie from database if its directory was changed and user does not want to give a new one
        /// </summary>
        /// <param name="file_name">The name of file to be deleted</param>
        public void DeleteOldRowFromDatabase(string file_name)
        {
            MovieDatabaseEntities db = new MovieDatabaseEntities();
            var FilmID =
            (from mov in db.MainMovieLists
             where mov.File_Name == file_name
             select mov.ID).FirstOrDefault();

            var DeletedFromFavourite_Hated =
                from fav in db.Favourite_Hated
                where fav.FilmID == FilmID
                select fav;

            var DeletedFromPlaylist =
                from pl in db.Playlists
                where pl.FilmID == FilmID
                select pl;

            var DeletedFromMainMovieLists =
                from mov in db.MainMovieLists
                where mov.ID == FilmID
                select mov;

            foreach (var pair in DeletedFromFavourite_Hated)
            {
                db.Favourite_Hated.Remove(pair);
            }

            foreach (var playlist in DeletedFromPlaylist)
            {
                db.Playlists.Remove(playlist);
            }

            foreach (var mov in DeletedFromMainMovieLists)
            {
                db.MainMovieLists.Remove(mov);
            }

            try
            {
                db.SaveChanges();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                // Provide for exceptions.
            }
        }