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); } }
/// <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); } } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
/// <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); } } }
public Movie GetMovieById(int id) { using (var context = new LunaContext()) { Movie newMovie = context.Movies.FirstOrDefault(m => m.MovieId == id); return(newMovie); } }
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); }
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); } }
/// <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); } } }
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); } } }
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); } }
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); } }
// <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); } } }
/// <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); } }
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); } }
/// <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); }
/// <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); } }
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); } }
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); } }
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); }