コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        /// <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");
            }
        }
コード例 #3
0
 public void Add(SoldBook soldBook)
 {
     using (context = new LibraryDBContext())
     {
         context.SoldBooks.Add(soldBook);
         context.SaveChanges();
     }
 }
コード例 #4
0
 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();
     }
 }
コード例 #5
0
        /// <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);
            }
        }
コード例 #6
0
ファイル: API.cs プロジェクト: Norrlandsk/WebshopAPI
        /// <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);
        }