/// <summary> /// Kollar om user är inloggad, kopierar infon för en köpt bok till SoldBookstabellen. /// </summary> /// <param name="userId"></param> /// <param name="bookId"></param> /// <returns></returns> public bool BuyBook(int userId, int bookId) { var user = db.Users.FirstOrDefault(u => u.Id == userId && u.SessionTimer > DateTime.Now.AddMinutes(-15)); if (user == null) { return(false); } using (var db = new MyDatabase()) { var org = db.Books.Find(bookId); var copy = new SoldBook { Title = org.Title, Author = org.Author, CategoryId = org.CategoryId, Price = org.Price, PurchaseDate = DateTime.Now, UserId = userId, }; db.SoldBooks.Add(copy); org.Amount -= 1; db.SaveChanges(); return(true); } }
/// <summary> /// Buy the selected book /// </summary> /// <param name="userId"></param> /// <param name="bookId"></param> public static void BuyBook(int userId, int bookId) { var soldBook = new SoldBook(); var user = GetUserById(userId); var book = GetBookById(bookId); var isLoggedIn = Ping(userId); try { if (isLoggedIn && user.IsActive) { if (book.Amount > 0) { soldBook.Title = book.Title; soldBook.Author = book.Author; soldBook.CategoryId = book.CategoryId; soldBook.Price = book.Price; soldBook.PurchasedDate = DateTime.Now; soldBook.UserId = user.Id; context.Add(soldBook); book.Amount -= 1; user.SessionTimer = DateTime.Now; context.SaveChanges(); return; } } } catch (Exception) { Console.WriteLine("Something went wrong"); } }
public void Add(SoldBook soldBook) { using (context = new LibraryDBContext()) { context.SoldBooks.Add(soldBook); context.SaveChanges(); } }
public void Remove(SoldBook soldBook) { using (context = new LibraryDBContext()) { SoldBook newSoldBook = context.SoldBooks.FirstOrDefault(x => x.Id == soldBook.Id); context.SoldBooks.Remove(newSoldBook); context.SaveChanges(); } }
/// <summary> /// Metod för att köpa en bok. Kollar om användaren är inloggad och att boken finns. /// Kopierar boken till tabellen SoldBooks och skapar koppling mellan den och användaren. /// </summary> /// <param name="userId"></param> /// <param name="bookId"></param> /// <returns></returns> public static User BuyBook(int userId, int bookId) { var user = db.Users.FirstOrDefault(u => u.Id == userId); var book = db.Books.Include(c => c.Categories).FirstOrDefault(b => b.Id == bookId); try { if (user != null && user.SessionTimer ! > DateTime.Now.AddMinutes(-10) && book != null && book.Amount > 0) { user.SessionTimer = DateTime.Now; book.Amount--; if (book.Amount < 1) { book.Amount = 0; } var soldBook = new SoldBook() { Title = book.Title, Author = book.Author, Price = book.Price, PurchasedDate = DateTime.Now, Categories = new List <Category>(), Users = new List <User>() }; soldBook.Users.Add(user); foreach (var cat in book.Categories) { soldBook.Categories.Add(cat); } db.SoldBooks.Add(soldBook); db.Update(user); db.SaveChanges(); View.BuyBook(soldBook.Title); return(user); } View.SomethingWentWrong(); return(null); } catch (Exception) { return(null); } }
/// <summary> /// User buys book /// </summary> /// <param name="userId"></param> /// <param name="bookId"></param> /// <returns>bool</returns> public bool BuyBook(int userId, int bookId) { bool isPurchaseSuccessful = false; using (var db = new EFContext()) { var user = db.Users?.FirstOrDefault(x => x.Id == userId); if (user != null) { if (SessionTimer.CheckSessionTimer(user.SessionTimer) == false) { var book = db.Books?.FirstOrDefault(x => x.Id == bookId); if (book != null && book.Amount > 0) { SoldBook soldBook = new SoldBook(); soldBook.Title = book.Title; soldBook.Author = book.Author; soldBook.CategoryId = book.CategoryId; soldBook.Price = book.Price; soldBook.PurchaseDate = DateTime.Now; soldBook.UserId = user.Id; book.Amount--; db.Update(book); db.Update(soldBook); isPurchaseSuccessful = true; user.SessionTimer = SessionTimer.SetSessionTimer(user.Id); Startup.sessionCookie = user; db.Update(user); db.SaveChanges(); } } } } return(isPurchaseSuccessful); }