Beispiel #1
0
        // GET: MyGames
        public ActionResult MyGames()
        {
            Account account = Session["account"] as Account;

            if (account == null)
            {
                TempData["infoMsg"] = "You must be logged in.";
                return(RedirectToAction("", "Login"));
            }
            List <GameAndGameDetails> gameAndGameDetailsList = new List <GameAndGameDetails>();

            foreach (OrderDetail orderDetail in db.OrderDetails.Where(od => od.Order.Person.Account.userName == account.userName))
            {
                GameAndGameDetails gameAndGameDetails = new GameAndGameDetails();
                gameAndGameDetails.gameDetailId = orderDetail.GameDetail.gameDetailId;
                gameAndGameDetails.gameId       = orderDetail.GameDetail.gameId;
                gameAndGameDetails.title        = orderDetail.GameDetail.Game.title;
                gameAndGameDetails.relDate      = orderDetail.GameDetail.Game.relDate;
                gameAndGameDetails.desc         = orderDetail.GameDetail.Game.desc;
                gameAndGameDetails.cover        = orderDetail.GameDetail.Game.cover;
                gameAndGameDetails.publisher    = orderDetail.GameDetail.Game.publisher;
                gameAndGameDetails.rateAVG      = orderDetail.GameDetail.Game.rateAVG;
                gameAndGameDetails.phyCopy      = orderDetail.GameDetail.phyCopy;
                gameAndGameDetails.price        = orderDetail.GameDetail.price;
                gameAndGameDetails.qoh          = orderDetail.GameDetail.phyCopy ? orderDetail.GameDetail.qoh : null;
                gameAndGameDetails.genreCode    = orderDetail.GameDetail.Game.GameGenres.First().genreCode;
                gameAndGameDetails.platformCode = orderDetail.GameDetail.Game.GamePlatforms.First().platformCode;
                gameAndGameDetailsList.Add(gameAndGameDetails);
            }
            return(View(gameAndGameDetailsList));
        }
Beispiel #2
0
        // GET: Reports/Games
        public ActionResult Games()
        {
            Account account = Session["account"] as Account;

            if (account == null)
            {
                TempData["infoMsg"] = "You must be logged in.";
                return(RedirectToAction("", "Login"));
            }
            if (account.roleCode != "employee")
            {
                throw new HttpException(403, "Access denied");
            }
            List <GameAndGameDetails> gameAndGameDetailsList = new List <GameAndGameDetails>();

            foreach (GameDetail gameDetail in db.GameDetails)
            {
                GameAndGameDetails gameAndGameDetails = new GameAndGameDetails();
                gameAndGameDetails.gameDetailId = gameDetail.gameDetailId;
                gameAndGameDetails.gameId       = gameDetail.gameId;
                gameAndGameDetails.title        = gameDetail.Game.title;
                gameAndGameDetails.relDate      = gameDetail.Game.relDate;
                gameAndGameDetails.desc         = gameDetail.Game.desc;
                gameAndGameDetails.cover        = gameDetail.Game.cover;
                gameAndGameDetails.publisher    = gameDetail.Game.publisher;
                gameAndGameDetails.rateAVG      = gameDetail.Game.rateAVG;
                gameAndGameDetails.phyCopy      = gameDetail.phyCopy;
                gameAndGameDetails.price        = gameDetail.price;
                gameAndGameDetails.qoh          = gameDetail.phyCopy ? gameDetail.qoh : null;
                gameAndGameDetails.genreCode    = gameDetail.Game.GameGenres.First().genreCode;
                gameAndGameDetails.platformCode = gameDetail.Game.GamePlatforms.First().platformCode;
                gameAndGameDetailsList.Add(gameAndGameDetails);
            }
            return(View(gameAndGameDetailsList.OrderBy(g => g.title)));
        }
Beispiel #3
0
        // GET: Games
        public ActionResult Index(string searchString)
        {
            List <GameDetail> gameDetails = db.GameDetails.Where(g => g.qoh != 0).ToList();

            if (!String.IsNullOrEmpty(searchString))
            {
                searchString = searchString.ToLower();
                gameDetails  = gameDetails.Where(g => g.Game.title.ToLower().Contains(searchString) || g.Game.GamePlatforms.First().platformCode.ToLower().Contains(searchString) || g.Game.GameGenres.First().genreCode.ToLower().Contains(searchString)).ToList();
            }
            List <GameAndGameDetails> gameAndGameDetailsList = new List <GameAndGameDetails>();

            foreach (GameDetail gameDetail in gameDetails)
            {
                GameAndGameDetails gameAndGameDetails = new GameAndGameDetails();
                gameAndGameDetails.gameDetailId = gameDetail.gameDetailId;
                gameAndGameDetails.gameId       = gameDetail.gameId;
                gameAndGameDetails.title        = gameDetail.Game.title;
                gameAndGameDetails.relDate      = gameDetail.Game.relDate;
                gameAndGameDetails.desc         = gameDetail.Game.desc;
                gameAndGameDetails.cover        = gameDetail.Game.cover;
                gameAndGameDetails.publisher    = gameDetail.Game.publisher;
                gameAndGameDetails.rateAVG      = gameDetail.Game.rateAVG;
                gameAndGameDetails.phyCopy      = gameDetail.phyCopy;
                gameAndGameDetails.price        = gameDetail.price;
                gameAndGameDetails.qoh          = gameDetail.phyCopy ? gameDetail.qoh : null;
                gameAndGameDetails.genreCode    = gameDetail.Game.GameGenres.First().genreCode;
                gameAndGameDetails.platformCode = gameDetail.Game.GamePlatforms.First().platformCode;
                gameAndGameDetailsList.Add(gameAndGameDetails);
            }
            return(View(gameAndGameDetailsList));
        }
Beispiel #4
0
        // GET: Reports/Game
        public ActionResult Game(int?gameId)
        {
            Account account = Session["account"] as Account;

            if (account == null)
            {
                TempData["infoMsg"] = "You must be logged in.";
                return(RedirectToAction("", "Login"));
            }
            if (account.roleCode != "employee")
            {
                throw new HttpException(403, "Access denied");
            }
            if (gameId == null)
            {
                throw new HttpException(400, "Bad request");
            }
            Game game = db.Games.Find(gameId);

            if (game == null)
            {
                throw new HttpException(404, "Not found");
            }
            GameAndGameDetails gameAndGameDetails = new GameAndGameDetails();

            gameAndGameDetails.gameId    = game.gameId;
            gameAndGameDetails.title     = game.title;
            gameAndGameDetails.publisher = game.publisher;
            gameAndGameDetails.relDate   = game.relDate;
            gameAndGameDetails.rateAVG   = game.rateAVG;
            GameDetail         physical     = game.GameDetails.Where(g => g.phyCopy).SingleOrDefault();
            GameDetail         downloadable = game.GameDetails.Where(g => !g.phyCopy).SingleOrDefault();
            List <OrderDetail> orders;

            if (physical != null)
            {
                ViewBag.phyPrice       = physical.price;
                gameAndGameDetails.qoh = physical.qoh;
                orders       = db.OrderDetails.Where(o => o.gameDetailId == physical.gameDetailId).ToList();
                ViewBag.buys = orders != null ? orders.Count : 0;
            }
            if (downloadable != null)
            {
                ViewBag.downPrice = downloadable.price;
                orders            = db.OrderDetails.Where(o => o.gameDetailId == downloadable.gameDetailId).ToList();
                ViewBag.downloads = orders != null ? orders.Count : 0;
            }
            gameAndGameDetails.genreCode = game.GameGenres.First().genreCode;
            return(View(gameAndGameDetails));
        }
Beispiel #5
0
        public ActionResult Edit([Bind(Include = "gameDetailId,gameId,title,platformCode,publisher,price,qoh,relDate,genreCode,desc")] GameAndGameDetails gameAndGameDetails)
        {
            Account account = Session["account"] as Account;

            if (account == null)
            {
                TempData["infoMsg"] = "You must be logged in.";
                return(RedirectToAction("", "Login"));
            }
            if (account.roleCode != "employee")
            {
                throw new HttpException(403, "Access denied");
            }
            if (gameAndGameDetails.relDate > DateTime.Today)
            {
                ModelState.AddModelError("relDate", "Release date cannot be later than today.");
            }
            if (ModelState.IsValid)
            {
                try
                {
                    Game game = db.Games.Find(gameAndGameDetails.gameId);
                    game.title           = gameAndGameDetails.title;
                    game.relDate         = gameAndGameDetails.relDate;
                    game.desc            = gameAndGameDetails.desc;
                    game.publisher       = gameAndGameDetails.publisher;
                    db.Entry(game).State = EntityState.Modified;
                    GameDetail gameDetail = db.GameDetails.Find(gameAndGameDetails.gameDetailId);
                    gameDetail.price           = (decimal)gameAndGameDetails.price;
                    gameDetail.qoh             = gameAndGameDetails.phyCopy ? gameAndGameDetails.qoh : null;
                    db.Entry(gameDetail).State = EntityState.Modified;
                    GamePlatform gamePlatform = db.GamePlatforms.Where(gp => gp.gameId == gameAndGameDetails.gameId).SingleOrDefault();
                    gamePlatform.platformCode = gameAndGameDetails.platformCode;
                    GameGenre gameGenre = db.GameGenres.Where(gg => gg.gameId == gameAndGameDetails.gameId).SingleOrDefault();
                    gameGenre.genreCode          = gameAndGameDetails.genreCode;
                    db.Entry(gamePlatform).State = EntityState.Modified;
                    db.Entry(gameGenre).State    = EntityState.Modified;
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                catch (Exception)
                {
                    TempData["errMsg"] = "An unexpected error has occurred. Please try again later.";
                }
            }
            ViewBag.genres     = new SelectList(db.Genres, "genreCode", "genreCode", gameAndGameDetails.genreCode);
            ViewBag.platforms  = new SelectList(db.Platforms, "platformCode", "platformCode", gameAndGameDetails.platformCode);
            ViewBag.publishers = new SelectList(Enum.GetValues(typeof(GameEnums.Publisher)), gameAndGameDetails.publisher);
            return(View(gameAndGameDetails));
        }
Beispiel #6
0
        // GET: Games/Edit/5
        public ActionResult Edit(int?id)
        {
            Account account = Session["account"] as Account;

            if (account == null)
            {
                TempData["infoMsg"] = "You must be logged in.";
                return(RedirectToAction("", "Login"));
            }
            if (account.roleCode != "employee")
            {
                throw new HttpException(403, "Access denied");
            }
            if (id == null)
            {
                throw new HttpException(400, "Bad request");
            }
            Game       game       = db.GameDetails.Find(id).Game;
            GameDetail gameDetail = db.GameDetails.Find(id);

            if (game == null)
            {
                throw new HttpException(404, "Not found");
            }
            if (gameDetail == null)
            {
                throw new HttpException(404, "Not found");
            }

            GameAndGameDetails gameAndGameDetails = new GameAndGameDetails();

            gameAndGameDetails.gameDetailId = gameDetail.gameDetailId;
            gameAndGameDetails.gameId       = gameDetail.Game.gameId;
            gameAndGameDetails.title        = gameDetail.Game.title;
            gameAndGameDetails.relDate      = gameDetail.Game.relDate;
            gameAndGameDetails.desc         = gameDetail.Game.desc;
            gameAndGameDetails.publisher    = gameDetail.Game.publisher;
            gameAndGameDetails.price        = gameDetail.price;
            gameAndGameDetails.phyCopy      = gameDetail.phyCopy;
            gameAndGameDetails.qoh          = gameDetail.phyCopy ? gameDetail.qoh : null;
            gameAndGameDetails.genreCode    = gameDetail.Game.GameGenres.First().genreCode;
            gameAndGameDetails.platformCode = gameDetail.Game.GamePlatforms.First().platformCode;
            ViewBag.genres     = new SelectList(db.Genres, "genreCode", "genreCode", gameAndGameDetails.genreCode);
            ViewBag.platforms  = new SelectList(db.Platforms, "platformCode", "platformCode", gameAndGameDetails.platformCode);
            ViewBag.publishers = new SelectList(Enum.GetValues(typeof(GameEnums.Publisher)), gameAndGameDetails.publisher);
            return(View(gameAndGameDetails));
        }
Beispiel #7
0
        // GET: Games/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                throw new HttpException(400, "Bad request");
            }
            GameDetail gameDetail = db.GameDetails.Find(id);

            if (gameDetail == null)
            {
                throw new HttpException(404, "Not found");
            }
            Game game = gameDetail.Game;

            if (game == null)
            {
                throw new HttpException(404, "Not found");
            }
            GameAndGameDetails gameAndGameDetails = new GameAndGameDetails();

            gameAndGameDetails.gameDetailId = gameDetail.gameDetailId;
            gameAndGameDetails.gameId       = gameDetail.Game.gameId;
            gameAndGameDetails.title        = gameDetail.Game.title;
            gameAndGameDetails.relDate      = gameDetail.Game.relDate;
            gameAndGameDetails.desc         = gameDetail.Game.desc;
            gameAndGameDetails.cover        = gameDetail.Game.cover;
            gameAndGameDetails.publisher    = gameDetail.Game.publisher;
            gameAndGameDetails.rateAVG      = gameDetail.Game.rateAVG;
            gameAndGameDetails.phyCopy      = gameDetail.phyCopy;
            gameAndGameDetails.price        = gameDetail.price;
            gameAndGameDetails.qoh          = gameDetail.phyCopy ? gameDetail.qoh : null;
            gameAndGameDetails.genreCode    = gameDetail.Game.GameGenres.First().genreCode;
            gameAndGameDetails.platformCode = gameDetail.Game.GamePlatforms.First().platformCode;
            gameAndGameDetails.Reviews      = gameDetail.Game.Reviews.Where(r => r.status == ReviewEnums.ReviewStatus.Approved.ToString()).ToList();
            return(View(gameAndGameDetails));
        }
Beispiel #8
0
        public ActionResult Create([Bind(Include = "title,platformCode,publisher,price,qoh,relDate,genreCode,desc,phyCopy")] GameAndGameDetails gameAndGameDetails)
        {
            Account account = Session["account"] as Account;

            if (account == null)
            {
                TempData["infoMsg"] = "You must be logged in.";
                return(RedirectToAction("", "Login"));
            }
            if (account.roleCode != "employee")
            {
                throw new HttpException(403, "Access denied");
            }
            Game game = db.Games.Where(g => g.title == gameAndGameDetails.title).SingleOrDefault();

            if (game == null)
            {
                if (gameAndGameDetails.relDate > DateTime.Today)
                {
                    ModelState.AddModelError("relDate", "Release date cannot be later than today.");
                }
                if (gameAndGameDetails.phyCopy && gameAndGameDetails.qoh == null)
                {
                    ModelState.AddModelError("qoh", "Quantity on hand is required.");
                }

                if (ModelState.IsValid)
                {
                    try
                    {
                        game           = new Game();
                        game.title     = gameAndGameDetails.title;
                        game.relDate   = gameAndGameDetails.relDate;
                        game.desc      = gameAndGameDetails.desc;
                        game.publisher = gameAndGameDetails.publisher;
                        db.Games.Add(game);
                        db.SaveChanges();
                        GameDetail gameDetail = new GameDetail();
                        gameDetail.gameId  = game.gameId;
                        gameDetail.phyCopy = gameAndGameDetails.phyCopy;
                        gameDetail.price   = gameAndGameDetails.price;
                        if (gameDetail.phyCopy)
                        {
                            gameDetail.qoh = gameAndGameDetails.qoh;
                        }
                        else
                        {
                            gameDetail.qoh = null;
                        }
                        GamePlatform gamePlatform = new GamePlatform();
                        gamePlatform.gameId       = game.gameId;
                        gamePlatform.platformCode = gameAndGameDetails.platformCode;
                        GameGenre gameGenre = new GameGenre();
                        gameGenre.gameId    = game.gameId;
                        gameGenre.genreCode = gameAndGameDetails.genreCode;
                        db.GameDetails.Add(gameDetail);
                        db.GamePlatforms.Add(gamePlatform);
                        db.GameGenres.Add(gameGenre);
                        db.SaveChanges();
                        return(RedirectToAction("Index"));
                    }
                    catch (Exception)
                    {
                        TempData["errMsg"] = "An unexpected error has occurred. Please try again later.";
                    }
                }
            }
            else
            {
                if (game.GameDetails.Count > 1)
                {
                    ModelState.AddModelError("title", "Both a physical and downloadable copy of this game have already been created.");
                }
                else
                {
                    if (gameAndGameDetails.relDate > DateTime.Today)
                    {
                        ModelState.AddModelError("relDate", "Release date cannot be later than today.");
                    }
                    if (game.GameDetails.SingleOrDefault() != null && game.GameDetails.SingleOrDefault().phyCopy == gameAndGameDetails.phyCopy)
                    {
                        if (gameAndGameDetails.phyCopy)
                        {
                            ModelState.AddModelError("phyCopy", "A physical copy of this game has already been created.");
                        }
                        else
                        {
                            ModelState.AddModelError("phyCopy", "A downloadable copy of this game has already been created.");
                        }
                    }
                    else
                    {
                        if (gameAndGameDetails.phyCopy && gameAndGameDetails.qoh == null)
                        {
                            ModelState.AddModelError("qoh", "Quantity on hand is required.");
                        }
                        if (ModelState.IsValid)
                        {
                            try
                            {
                                GameDetail gameDetail = new GameDetail();
                                gameDetail.gameId  = game.gameId;
                                gameDetail.phyCopy = gameAndGameDetails.phyCopy;
                                gameDetail.price   = gameAndGameDetails.price;
                                if (gameDetail.phyCopy)
                                {
                                    gameDetail.qoh = gameAndGameDetails.qoh;
                                }
                                else
                                {
                                    gameDetail.qoh = null;
                                }
                                db.GameDetails.Add(gameDetail);
                                db.SaveChanges();
                                return(RedirectToAction("Index"));
                            }
                            catch (Exception)
                            {
                                TempData["errMsg"] = "An unexpected error has occurred. Please try again later.";
                            }
                        }
                    }
                }
            }
            ViewBag.genres     = new SelectList(db.Genres, "genreCode", "genreCode", gameAndGameDetails.genreCode);
            ViewBag.platforms  = new SelectList(db.Platforms, "platformCode", "platformCode", gameAndGameDetails.platformCode);
            ViewBag.publishers = new SelectList(Enum.GetValues(typeof(GameEnums.Publisher)), gameAndGameDetails.publisher);
            return(View(gameAndGameDetails));
        }