public byte SetUserStatus(string email)
 {
     try
     {
         using (var context = new LunaContext())
         {
             var user = context.Users.FirstOrDefault(i => i.Email == email);
             {
                 if (user.AccountStatus == 1)
                 {
                     user.AccountStatus = 0;
                     context.SaveChanges();
                 }
                 else
                 {
                     user.AccountStatus = 1;
                     context.SaveChanges();
                 }
             }
         }
         return(1);
     }
     catch (Exception e)
     {
         return(0);
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Metoden returnerer en UserViewModel med informasjon om den aktuelle brukeren.
        /// Her må vi håndtere catchen slik at den gjør noe vettugt.
        /// </summary>
        /// <param name="userEmail">Her bruker vi igjen epost som det unike attributten</param>
        /// <returns>Returnerer informasjon om brukeren om brukeren ligger i databasen.</returns>
        public UserViewModel GetDetailedUser(string userEmail)
        {
            using (var context = new LunaContext())
            {
                try
                {
                    var           user          = context.Users.Include("PostalAddress").SingleOrDefault(u => u.Email == userEmail);
                    UserViewModel userViewModel = new UserViewModel()
                    {
                        FirstName  = user.FirstName,
                        LastName   = user.LastName,
                        Address    = user.Address,
                        Email      = user.Email,
                        PostalArea = user.PostalAddress.PostalArea,
                        ZipCode    = user.PostalAddress.ZipCode
                    };

                    return(userViewModel);
                }
                catch (Exception e)
                {
                    // Må feilhåndteres!
                    return(null);
                }
            }
        }
Exemplo n.º 3
0
        public List <OrdersAndUserViewModel> GetOrdersByDate()
        {
            try
            {
                using (var context = new LunaContext())
                {
                    List <Order> orderList = context.Orders.Include("User").Include("OrderLine").OrderByDescending(o => o.OrderId).ToList();
                    List <OrdersAndUserViewModel> theList = new List <OrdersAndUserViewModel>();

                    foreach (var item in orderList)
                    {
                        OrdersAndUserViewModel m = new OrdersAndUserViewModel()
                        {
                            UserId     = item.User.UserId,
                            FirstName  = item.User.FirstName,
                            LastName   = item.User.LastName,
                            OrderId    = item.OrderId,
                            DateTime   = item.OrderDate.ToString("dd/M/yyyy"),
                            OrderCount = item.OrderLine.Count(),
                            Status     = item.Status
                        };
                        theList.Add(m);
                    }

                    return(theList);
                }
            }catch (Exception e)
            {
                ErrorLog(e);
                return(null);
            }
        }
Exemplo n.º 4
0
        public bool EditMovie(Movie movie)
        {
            try
            {
                using (var db = new LunaContext())
                {
                    //Logg event to file
                    db.LogFromDB();

                    var MovieInDb = db.Movies.First(m => m.MovieId == movie.MovieId);

                    MovieInDb.Title         = movie.Title;
                    MovieInDb.Price         = movie.Price;
                    MovieInDb.ReleaseYear   = movie.ReleaseYear;
                    MovieInDb.ContentRating = movie.ContentRating;
                    MovieInDb.Director      = movie.Director;
                    MovieInDb.Duration      = movie.Duration;
                    MovieInDb.Genre         = movie.Genre;
                    MovieInDb.Storyline     = movie.Storyline;

                    db.SaveChanges();
                    return(true);
                }
            } catch (Exception e)
            {
                ErrorLog(e);
                return(false);
            }
        }
Exemplo n.º 5
0
 public List <JsOrderLineViewModel> OrderOrderlines(int OrdreLineId)
 {
     try
     {
         using (var db = new LunaContext())
         {
             System.Diagnostics.Debug.WriteLine(OrdreLineId);
             List <OrderLine>            orderLines     = db.OrderLines.Include("Movie").Where(o => o.Order.OrderId == OrdreLineId).ToList();
             List <JsOrderLineViewModel> orderlinesList = new List <JsOrderLineViewModel>();
             System.Diagnostics.Debug.WriteLine(orderLines.Count);
             foreach (var orderlin in orderLines)
             {
                 orderlinesList.Add(new JsOrderLineViewModel
                 {
                     Title = orderlin.Movie.Title,
                     Price = orderlin.Movie.Price
                 });
             }
             return(orderlinesList);
         }
     }catch (Exception e)
     {
         ErrorLog(e);
         return(null);
     }
 }
Exemplo n.º 6
0
        public byte SetOrderStatus(int id)
        {
            try
            {
                using (var db = new LunaContext())
                {
                    //Logg event to file
                    db.LogFromDB();

                    var order = db.Orders.FirstOrDefault(i => i.OrderId == id);
                    {
                        if (order.Status == 1)
                        {
                            order.Status = 0;
                            db.SaveChanges();
                        }
                        else
                        {
                            order.Status = 1;
                            db.SaveChanges();
                        }
                    }
                }
                return(1);
            }
            catch (Exception e)
            {
                ErrorLog(e);
                return(0);
            }
        }
Exemplo n.º 7
0
        public bool VerifyAdmin(Login login)
        {
            Debug.WriteLine("VERIFY");
            try
            {
                using (var db = new LunaContext())
                {
                    //Logg event to file
                    db.LogFromDB();

                    AdminUser adminUser = db.AdminUsers.FirstOrDefault(u => u.Username == login.Username);
                    if (adminUser != null)
                    {
                        byte[] usedPassword = PasswordEncryption.toHash(login.Password, adminUser.Salt);
                        return(adminUser.Password.SequenceEqual(usedPassword));
                    }
                    else
                    {
                        return(false);
                    }
                }
            } catch (Exception e)
            {
                ErrorLog(e);
                return(false);
            }
        }
Exemplo n.º 8
0
        public byte SetUserStatus(string email)
        {
            try
            {
                using (var db = new LunaContext())
                {
                    //Logg event to file
                    db.LogFromDB();

                    var user = db.Users.FirstOrDefault(i => i.Email == email);
                    {
                        if (user.AccountStatus == 1)
                        {
                            user.AccountStatus = 0;
                            db.SaveChanges();
                        }
                        else
                        {
                            user.AccountStatus = 1;
                            db.SaveChanges();
                        }
                    }
                }
                return(1);
            }
            catch (Exception e)
            {
                ErrorLog(e);
                return(0);
            }
        }
Exemplo n.º 9
0
 public byte MovieAvailabilty(int id)
 {
     try
     {
         using (var context = new LunaContext())
         {
             var movie = context.Movies.FirstOrDefault(i => i.MovieId == id);
             {
                 if (movie.IsAvailable == 1)
                 {
                     movie.IsAvailable = 0;
                     context.SaveChanges();
                 }
                 else
                 {
                     movie.IsAvailable = 1;
                     context.SaveChanges();
                 }
             }
         }
         return(1);
     }
     catch (Exception e)
     {
         ErrorLog(e);
         return(0);
     }
 }
Exemplo n.º 10
0
        /// <summary>
        /// Oppretter en ordre til en aktuell bruker og oppdaterer databasecontexten.
        /// </summary>
        /// <param name="movieList">Tar inn en liste av filmer.</param>
        /// <param name="userEmail">Tar inn en bruker-epost som fungerer som id og navigasjon.</param>
        /// <returns></returns>


        public bool createOrder(List <Movie> movieList, string userEmail)
        {
            using (var context = new LunaContext())
            {
                try
                {
                    var order         = new Order();
                    var newOrderLines = new List <OrderLine>();
                    order.User      = context.Users.FirstOrDefault(m => m.Email == userEmail);
                    order.OrderDate = DateTime.Now;
                    order.OrderLine = newOrderLines;


                    foreach (var movie in movieList)
                    {
                        var newOrderLine = new OrderLine();
                        newOrderLine.Movie = context.Movies.FirstOrDefault(m => m.MovieId == movie.MovieId);
                        newOrderLine.Order = order;
                        order.OrderLine.Add(newOrderLine);
                    }

                    context.Orders.Add(order);
                    context.SaveChanges();
                    return(true);
                }
                catch (Exception e)
                {
                    return(false);
                }
            }
        }
Exemplo n.º 11
0
 public Movie GetMovieById(int id)
 {
     using (var context = new LunaContext())
     {
         Movie newMovie = context.Movies.FirstOrDefault(m => m.MovieId == id);
         return(newMovie);
     }
 }
Exemplo n.º 12
0
        public User GetUser(string Email)
        {
            using (var context = new LunaContext())
            {
                var user = context.Users.Include("PostalAddress").FirstOrDefault(u => u.Email == Email);

                return(user);
            }
        }
        public List <User> GetUsersById()
        {
            List <User> usersById = new List <User>();

            using (var context = new LunaContext())
            {
                usersById = context.Users.OrderBy(u => u.UserId).ToList();
            }
            return(usersById);
        }
        public List <Movie> GetMoviesById()
        {
            List <Movie> moviesById = new List <Movie>();

            using (var context = new LunaContext())
            {
                moviesById = context.Movies.OrderBy(i => i.MovieId).ToList();
            }
            return(moviesById);
        }
Exemplo n.º 15
0
        public MovieViewModel MovieDetail(int id)
        {
            MovieViewModel movie = new MovieViewModel();

            using (var context = new LunaContext())
            {
                Movie n = context.Movies.FirstOrDefault(m => m.MovieId == id);
                movie.Title = n.Title;
            };
            return(movie);
        }
        public List <User> ListUsers()
        {
            List <User> AllUsers = new List <User>();

            using (var db = new LunaContext())
            {
                AllUsers = db.Users.ToList();
            }

            return(AllUsers);
        }
 public bool RemoveUser(string Email)
 {
     using (var context = new LunaContext())
     {
         var userToDelete = context.Users.FirstOrDefault(e => e.Email == Email);
         if (userToDelete != null)
         {
             context.Users.Remove(userToDelete);
             context.SaveChanges();
             return(true);
         }
         return(false);
     }
 }
Exemplo n.º 18
0
        /// <summary>
        /// Legger inn en ny bruker i user-tabellen. Postaddressene legges ikke dobbelt
        /// slik at vi slipper dobbeltlagring. Et problem nå er at hvis noen lager en postnummer
        /// med feil poststed, vil alle andre med samme postnummer få dette poststedet også.
        /// Vi har planlagt å bruke Posten sitt API for å fylle databasen vår med postnumre og
        /// auto-fylle posted for å unngå dette. Her er det også en try-catch vi må håndtere.
        /// </summary>
        /// <param name="inUser">Tar inn en bruker</param>
        /// <returns>returnerer en bolsk verdi avhengig av om registreringen var velykket eller ikke.</returns>


        public bool AddCustomer(UserViewModel inUser)
        {
            using (var context = new LunaContext())
            {
                try
                {
                    if (context.Users.FirstOrDefault(u => u.Email == inUser.Email) != null)
                    {
                        return(false);
                    }
                    var newUser = new User()
                    {
                        FirstName     = inUser.FirstName,
                        LastName      = inUser.LastName,
                        Address       = inUser.Address,
                        AccountStatus = 1
                    };

                    //Legger inn nytt postnr og poststed hvis det ikke allerede finnes i databasen.
                    if (context.PostalAddresses.Find(inUser.ZipCode) != null)
                    {
                        newUser.PostalAddress = context.PostalAddresses.FirstOrDefault(z => z.ZipCode == inUser.ZipCode);
                    }
                    else
                    {
                        newUser.PostalAddress = new PostalAddress()
                        {
                            ZipCode    = inUser.ZipCode,
                            PostalArea = inUser.PostalArea
                        };
                    }

                    newUser.Email = inUser.Email;

                    var salt = PasswordEncryption.addSalt();
                    newUser.Salt     = salt;
                    newUser.Password = PasswordEncryption.toHash(inUser.Password, salt);

                    context.Users.Add(newUser);
                    context.SaveChanges();
                    return(true);
                }
                catch (Exception error)
                {
                    return(false);
                }
            }
        }
Exemplo n.º 19
0
 public List <User> ListUsers()
 {
     try
     {
         List <User> AllUsers = new List <User>();
         using (var db = new LunaContext())
         {
             AllUsers = db.Users.OrderBy(u => u.UserId).ToList();
         }
         return(AllUsers);
     } catch (Exception e)
     {
         ErrorLog(e);
         return(null);
     }
 }
 public bool VerifyAdmin(Login login)
 {
     using (var db = new LunaContext())
     {
         AdminUser adminUser = db.AdminUsers.FirstOrDefault(u => u.Username == login.Username);
         if (adminUser != null)
         {
             byte[] usedPassword = PasswordEncryption.toHash(login.Password, adminUser.Salt);
             return(adminUser.Password.SequenceEqual(usedPassword));
         }
         else
         {
             return(false);
         }
     }
 }
Exemplo n.º 21
0
 public List <Movie> GetMoviesById()
 {
     try
     {
         List <Movie> moviesById = new List <Movie>();
         using (var context = new LunaContext())
         {
             moviesById = context.Movies.OrderBy(i => i.MovieId).ToList();
         }
         return(moviesById);
     } catch (Exception e)
     {
         ErrorLog(e);
         return(null);
     }
 }
Exemplo n.º 22
0
 public List <Order> GetOrdersById()
 {
     try
     {
         List <Order> ordersById = new List <Order>();
         using (var context = new LunaContext())
         {
             ordersById = context.Orders.OrderBy(i => i.OrderId).ToList();
         }
         return(ordersById);
     }
     catch (Exception e)
     {
         ErrorLog(e);
         return(null);
     }
 }
Exemplo n.º 23
0
        // <summary>
        /// Sjekker om den aktuelle brukeren ligger i databasen. Epostene er
        /// unike og hvis en epost allerede ligger i databasen vil denne metoden
        /// returnere false.
        /// </summary>
        /// <param name="user">Tar imot en bruker og sjekker eposten.</param>
        /// <returns>Returnerer true om brukern ble lagt til, og false om den allerede eksisterer.</returns>
        public bool UserInDB(UserViewModel user)
        {
            using (var db = new LunaContext())
            {
                User authUser = db.Users.FirstOrDefault(u => u.Email == user.Email);
                if (authUser != null)
                {
                    byte[] usedPassword = PasswordEncryption.toHash(user.Password, authUser.Salt);
                    return(authUser.Password.SequenceEqual(usedPassword));
                }

                else
                {
                    return(false);
                }
            }
        }
Exemplo n.º 24
0
 /// <summary>
 /// Metoden går inn i databasen via context og henter ut de korrekte ordene til brukeren
 /// som er innlogget. Når ordrene er hentet ut, blir informasjonen definert i
 /// et ViewModel objekt, som igjen blir brukt i Viewet.
 /// </summary>
 /// <param name="userid">Metoden tar inn et parameter "userid" som definerer hvilken kunde
 /// som skal ha side ordrer vist i Viewet. </param>
 /// <returns>Returnerer en liste med alle ordrer til kunden</returns>
 public List <JsOrderViewModel> UsersOrders(int userid)
 {
     using (var context = new LunaContext())
     {
         List <Order>            orderList   = context.Orders.Where(u => (u.User.UserId == userid)).ToList();
         List <JsOrderViewModel> jsOrderList = new List <JsOrderViewModel>();
         foreach (var ordre in orderList)
         {
             JsOrderViewModel jsOrder = new JsOrderViewModel
             {
                 OrderId   = ordre.OrderId,
                 OrderDate = ordre.OrderDate.ToString(),
             };
             jsOrderList.Add(jsOrder);
         }
         return(jsOrderList);
     }
 }
Exemplo n.º 25
0
 public int[] GetCharInformation()
 {
     int[] activeCount = { 0, 0, 0, 0 };
     try
     {
         using (var context = new LunaContext())
         {
             activeCount[0] = context.Users.Where(u => u.AccountStatus == 0).Count();
             activeCount[1] = context.Users.Where(u => u.AccountStatus == 1).Count();
             activeCount[2] = context.Movies.Where(s => s.IsAvailable == 0).Count();
             activeCount[3] = context.Movies.Where(s => s.IsAvailable == 1).Count();
             return(activeCount);
         }
     }
     catch (Exception e)
     {
         ErrorLog(e);
         return(null);
     }
 }
Exemplo n.º 26
0
        /// <summary>
        /// Denne metoden kjøres for å hente ut alle filmene i databasen på et format vi syntes
        /// var enklest å forholde oss til. Den lager en liste over alle filmer i samme sjanger,
        /// og legger disse listene i en felles stor liste. Vi kan da enkelt opprette partialviews for
        /// hver enkelt liste i denne store listen.
        ///
        /// TODO:
        /// Vi skal øke antallet filmer i databasen til neste oblig, derfor ønsker vi å endre
        /// denne metoden, slik at den dynamisk henter ut filmer som vises i Viewet, istedenfor å
        /// hente alt på en metode. For en liten database med filmer fungerer dette helt greit, men ved
        /// større øking av filmer, vil en dynamisk hentemetode være mye mer effektivt.
        /// </summary>
        /// <returns>Returnerer en liste som inneholder lister, med filmer i forskjellige sjangere.</returns>
        public List <MovieListViewModel> getAllMovies()
        {
            List <MovieListViewModel> listMovieVM = new List <MovieListViewModel>();

            using (var context = new LunaContext())
            {
                List <string> a = context.Movies.Select(m => m.Genre).Distinct().ToList();
                foreach (var genre in a)
                {
                    MovieListViewModel MLVM = new MovieListViewModel();
                    MLVM.List     = new List <Movie>();
                    MLVM.listName = genre;

                    foreach (var movie in context.Movies)
                    {
                        if (movie.Genre == genre)
                        {
                            Movie tempMovie = new Movie
                            {
                                Title         = movie.Title,
                                Price         = movie.Price,
                                ContentRating = movie.ContentRating,
                                Duration      = movie.Duration,
                                ReleaseYear   = movie.ReleaseYear,
                                Stars         = movie.Stars,
                                Poster        = movie.Poster,
                                Storyline     = movie.Storyline,
                                MovieId       = movie.MovieId,
                                Director      = movie.Director,
                                Genre         = movie.Genre,
                                IsAvailable   = movie.IsAvailable
                            };

                            MLVM.List.Add(tempMovie);
                        }
                    }
                    listMovieVM.Add(MLVM);
                }
            }
            return(listMovieVM);
        }
Exemplo n.º 27
0
        /// <summary>
        /// Metoden går inn i databasen via context og henter ut alle de korrekte ordrelinjene
        /// til en ordre. Når ordrelinjene er hentet ut, blir de definert i et ViewModel objekt,
        /// som blir brukt til et View.
        /// </summary>
        /// <param name="orderId">Metoden tar inn et ordreId parameter som definerer hvilke ordrelinjer
        /// som skal hentes ut fra databasen</param>
        /// <returns>Returnerer en liste av ViewModel objekter</returns>
        public List <JsMovieViewModel> OrderMovie(int orderId)
        {
            using (var context = new LunaContext())
            {
                List <OrderLine>        orderLineList = context.OrderLines.Include("Movie").Where(o => o.Order.OrderId == orderId).ToList();
                List <JsMovieViewModel> jsMovieList   = new List <JsMovieViewModel>();

                foreach (var orderlinje in orderLineList)
                {
                    JsMovieViewModel m = new JsMovieViewModel()
                    {
                        Title   = orderlinje.Movie.Title,
                        MovieId = orderlinje.Movie.MovieId,
                        Price   = orderlinje.Movie.Price
                    };
                    jsMovieList.Add(m);
                }

                return(jsMovieList);
            }
        }
Exemplo n.º 28
0
        public bool AddMovie(Movie movie)
        {
            try {
                using (var db = new LunaContext())
                {
                    //Logg event to file
                    db.LogFromDB();

                    if (movie != null)
                    {
                        Movie newMovie = new Movie
                        {
                            Title         = movie.Title,
                            Director      = movie.Director,
                            ContentRating = movie.ContentRating,
                            IsAvailable   = 1,
                            Genre         = movie.Genre,
                            Duration      = movie.Duration,
                            Price         = movie.Price,
                            Storyline     = movie.Storyline,
                            ReleaseYear   = movie.ReleaseYear,
                            Poster        = movie.Poster,
                            Stars         = movie.Stars
                        };

                        db.Movies.Add(newMovie);
                        db.SaveChanges();
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }catch (Exception e)
            {
                ErrorLog(e);
                return(false);
            }
        }
Exemplo n.º 29
0
        public bool EditUser(User user)
        {
            try
            {
                using (var db = new LunaContext())
                {
                    //Logg event to file
                    db.LogFromDB();

                    var UserInDb = db.Users.First(u => u.UserId == user.UserId);

                    UserInDb.FirstName = user.FirstName;
                    UserInDb.LastName  = user.LastName;
                    UserInDb.Address   = user.Address;

                    if (db.PostalAddresses.Find(user.PostalAddress.ZipCode) != null)
                    {
                        UserInDb.PostalAddress = db.PostalAddresses.FirstOrDefault(z => z.ZipCode == user.PostalAddress.ZipCode);
                    }
                    else
                    {
                        UserInDb.PostalAddress = new PostalAddress()
                        {
                            ZipCode    = user.PostalAddress.ZipCode,
                            PostalArea = user.PostalAddress.PostalArea
                        };
                    }
                    //UserInDb.PostalAddress.PostalArea = user.PostalAddress.PostalArea;
                    //UserInDb.PostalAddress.ZipCode = user.PostalAddress.ZipCode;

                    db.SaveChanges();
                    return(true);
                }
            } catch (Exception e)
            {
                ErrorLog(e);
                return(false);
            }
        }
Exemplo n.º 30
0
 public byte GetUserStatus(string email)
 {
     try
     {
         using (var context = new LunaContext())
         {
             var user = context.Users.FirstOrDefault(i => i.Email == email);
             if (user.AccountStatus == 1)
             {
                 return(1);
             }
             else
             {
                 return(0);
             }
         }
     }
     catch (Exception e)
     {
         ErrorLog(e);
     }
     return(0);
 }