Example #1
0
        public GamePlayModalViewModel GetBoardgamePlaysForGame(string email, int gameid)
        {
            GamePlayModalViewModel model = new GamePlayModalViewModel();
            UserDetails            user  = _context.UserDetails.Where(u => u.Email == email).FirstOrDefault();

            if (user == null)
            {
                return(model);
            }
            Boardgame game = _context.Boardgames.Where(x => x.BoardgameId == gameid).FirstOrDefault();

            if (game == null)
            {
                return(model);
            }

            model.BoardgameName  = game.Name;
            model.BoardgameId    = game.BoardgameId;
            model.BoardgamePlays = _context.UserBoardgamePlays
                                   .Where(p => p.BoardgameId == game.BoardgameId && p.UserDetailId == user.UserDetailId)
                                   .Select(ubp => new UserBoardgamePlayViewModel {
                BoardgameId   = ubp.BoardgameId,
                PlayId        = ubp.PlayId,
                BoardgameName = game.Name,
                DatePlayed    = ubp.DatePlayed,
                UserDetailId  = user.UserDetailId
            });

            return(model);
        }
Example #2
0
        public IActionResult Create(CreateBoardgameModel createBoardgame)
        {
            if (ModelState.IsValid)
            {
                var webRoot  = _env.WebRootPath;
                var filePath = Path.Combine(webRoot.ToString() + "\\images\\games\\" + createBoardgame.imageUpload.FileName);

                if (createBoardgame.imageUpload.FileName.Length > 0)
                {
                    using (var stream = new FileStream(filePath, FileMode.Create))
                    {
                        createBoardgame.imageUpload.CopyTo(stream);
                    }
                }

                var boardgame = new Boardgame
                {
                    Name        = createBoardgame.Name,
                    Description = createBoardgame.Description,
                    Rating      = createBoardgame.Rating,
                    Image       = "\\images\\games\\" + createBoardgame.imageUpload.FileName
                };

                _assets.Add(boardgame);
                return(RedirectToAction("Index"));
            }

            return(View(createBoardgame));
        }
Example #3
0
        public async Task <IEnumerable <Boardgame> > LoadHotness()
        {
            try
            {
                Uri       teamDataURI = new Uri(BASE_URL + "/hot?thing=boardgame");
                XDocument xDoc        = await ReadData(teamDataURI);

                // LINQ to XML.
                IEnumerable <Boardgame> gameCollection = from Boardgame in xDoc.Descendants("item")
                                                         select new Boardgame
                {
                    Name          = Boardgame.Element("name").Attribute("value").Value,
                    YearPublished = Boardgame.Element("yearpublished") != null?int.Parse(Boardgame.Element("yearpublished").Attribute("value").Value) : 0,
                                        Thumbnail = Boardgame.Element("thumbnail").Attribute("value").Value,
                                        GameId    = int.Parse(Boardgame.Attribute("id").Value)
                };

                return(gameCollection);
            }
            catch (Exception ex)
            {
                //ExceptionHandler(ex);
                return(new List <Boardgame>());
            }
        }
Example #4
0
        public async Task <User> LoadUserDetails(string username)
        {
            try
            {
                Uri teamDataURI = new Uri(string.Format(BASE_URL + "/user?name={0}", username));

                XDocument xDoc = await ReadData(teamDataURI);

                IEnumerable <User> users = from Boardgame in xDoc.Descendants("user")
                                           select new User
                {
                    BggUserId      = int.Parse(Boardgame.Attribute("id").Value),
                    Username       = Boardgame.Attribute("name").Value,
                    Avatar         = GetStringValue(Boardgame.Element("avatarlink"), "value"),
                    FirstName      = GetStringValue(Boardgame.Element("firstname"), "value"),
                    LastName       = GetStringValue(Boardgame.Element("lastname"), "value"),
                    YearRegistered = GetStringValue(Boardgame.Element("yearregistered"), "value"),
                };
                return(users.FirstOrDefault());
            }
            catch (Exception)
            {
                return(new User());
            }
        }
Example #5
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Boardgame boardgame = db.Boardgame.Find(id);

            if (boardgame == null)
            {
                return(HttpNotFound());
            }
            List <SelectListItem> items = new SelectList(db.Author, "author_id", "author_name", boardgame.author_id).ToList();

            items.Insert(0, (new SelectListItem {
                Text = null, Value = null,
            }));
            ViewBag.author_id = items;
            items             = new SelectList(db.Complexity, "complexity_id", "complexity_name", boardgame.complexity_id).ToList();
            items.Insert(0, (new SelectListItem {
                Text = null, Value = null,
            }));
            ViewBag.complexity_id = items;
            items = new SelectList(db.Publisher, "publisher_id", "publisher_name", boardgame.publisher_id).ToList();
            items.Insert(0, (new SelectListItem {
                Text = null, Value = null,
            }));
            ViewBag.publisher_id = items;
            return(View(boardgame));
        }
Example #6
0
        public async Task <IEnumerable <Play> > LoadLastPlays(string Username)
        {
            try
            {
                Uri       teamDataURI = new Uri(string.Format(BASE_URL + "/plays?username={0}", Username));
                XDocument xDoc        = await ReadData(teamDataURI);

                IEnumerable <Play> gameCollection = from Boardgame in xDoc.Descendants("play")
                                                    select new Play
                {
                    PlayId        = int.Parse(Boardgame.Attribute("id").Value),
                    BoardGameName = Boardgame.Element("item").Attribute("name").Value,
                    BoardGameId   = int.Parse(Boardgame.Element("item").Attribute("objectid").Value),
                    PlayDate      = safeParseDateTime(Boardgame.Attribute("date").Value),
                    NumberOfPlays = int.Parse(Boardgame.Attribute("quantity").Value),
                    Length        = int.Parse(Boardgame.Attribute("length").Value),
                    UserComment   = GetStringValue(Boardgame.Element("comments")),
                    Players       = LoadPlayersStatsList(Boardgame.Element("players"))
                };

                return(gameCollection);
            }
            catch (Exception)
            {
                return(new List <Play>());
            }
        }
Example #7
0
        public BoardGameEntry(Boardgame boardGame)
        {
            this.Name          = boardGame.Name.Single(n => n.Primary).Text;
            this.Description   = boardGame.Description;
            this.Thumbnail     = boardGame.Thumbnail;
            this.MinPlayers    = boardGame.Minplayers;
            this.MaxPlayers    = boardGame.Maxplayers;
            this.MinPlaytime   = boardGame.Minplaytime;
            this.MaxPlaytime   = boardGame.Maxplaytime;
            this.Image         = boardGame.Image;
            this.ObjectId      = boardGame.Objectid;
            this.YearPublished = new DateTimeOffset(new DateTime(boardGame.Yearpublished, 1, 1));
            this.AverageRating = boardGame.Statistics.Ratings.Average;
            this.UsersRated    = boardGame.Statistics.Ratings.Usersrated;
            this.Age           = boardGame.Age;
            var playerPoll = boardGame.Poll.FirstOrDefault(p => p.Name == "suggested_numplayers");

            if (playerPoll != null)
            {
                int highestResult = 0;
                foreach (var res in playerPoll.Results)
                {
                    var bestResult = res.Result.First(rn => rn.Value == "Best");
                    if (bestResult.Numvotes > highestResult)
                    {
                        highestResult        = bestResult.Numvotes;
                        this.BestPlayerCount = res.Numplayers;
                    }
                }
            }
        }
Example #8
0
        public ActionResult DeleteConfirmed(int id)
        {
            Boardgame boardgame = db.Boardgames.Find(id);

            db.Boardgames.Remove(boardgame);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #9
0
        private DetailsBoardgameViewModel GetDetailsBoardgameViewModel(Boardgame boardgame)
        {
            DetailsBoardgameViewModel viewModel = new DetailsBoardgameViewModel();
            MapperConfiguration       config    = new MapperConfiguration(cfg => cfg.CreateMap <Boardgame, DetailsBoardgameViewModel>());
            IMapper mapper = config.CreateMapper();

            viewModel = mapper.Map(boardgame, viewModel);
            return(viewModel);
        }
Example #10
0
 public async Task <Boardgame> UpdategameAsync(Boardgame boardgame)
 {
     using (var boardgameContext = new BoardgameContext())
     {
         boardgameContext.Entry(boardgame).State = EntityState.Modified;
         await boardgameContext.SaveChangesAsync();
     }
     return(boardgame);
 }
Example #11
0
        private void NotifyRequestBoardgameCompleted(XDocument document)
        {
            Boardgame boardgame = boardgameReader.FromXml(document);

            if (RequestBoardgameCompleted != null)
            {
                RequestBoardgameCompleted(this, new BoardgameEventArgs(boardgame));
            }
        }
Example #12
0
        public async Task <Boardgame> GetGameAsync(int id)
        {
            Boardgame result = null;

            using (var boardgameContext = new BoardgameContext())
            {
                result = await boardgameContext.Boardgames.FirstOrDefaultAsync(f => f.ProductId == id);
            }
            return(result);
        }
Example #13
0
        public ActionResult IntoBasket(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Boardgame boardgame = db.Boardgame.Find(id);

            if (boardgame == null)
            {
                return(HttpNotFound());
            }
            User user = db.User.Find(1);

            if (user.Basket != null && user.Basket.Count != 0)
            {
                bool flag = false;
                foreach (Basket basket in user.Basket)
                {
                    if (basket.boardgame_id == id)
                    {
                        flag = true;
                        break;
                    }
                }
                if (flag)
                {
                    IncreaseOrder(id);
                }
                else
                {
                    user.Basket.Add(new Models.Basket()
                    {
                        Boardgame      = boardgame,
                        User           = db.User.Find(1),
                        Status         = db.Status.Where(s => s.status_name == "Корзина").First(),
                        product_number = 1
                    });
                }
            }
            else
            {
                user.Basket.Add(new Models.Basket()
                {
                    Boardgame      = boardgame,
                    User           = db.User.Find(1),
                    Status         = db.Status.Where(s => s.status_name == "Корзина").First(),
                    product_number = 1
                });
            }
            db.SaveChanges();
            ViewBag.Sum = db.User.Find(1).Basket.Sum(b => b.product_number * b.product_number);
            return(View("Basket", db.User.Find(1).Basket));
        }
Example #14
0
        public async Task <Boardgame> AddGamesAsync(Boardgame bordgame)
        {
            Boardgame result = null;

            using (var boardgameContext = new BoardgameContext())
            {
                result = boardgameContext.Boardgames.Add(bordgame);
                await boardgameContext.SaveChangesAsync();
            }
            return(result);
        }
Example #15
0
        public ActionResult DeleteConfirmed(int id)
        {
            Boardgame boardgame = db.Boardgame.Find(id);

            if (boardgame.cover_path != null && boardgame.cover_path != "")
            {
                System.IO.File.Delete(Server.MapPath("~/Content/" + boardgame.cover_path));
            }
            db.Boardgame.Remove(boardgame);
            db.SaveChanges();
            return(RedirectToAction("Catalog", db.Boardgame));
        }
Example #16
0
        private void EditBoardgame(EditBoardgameViewModel editBoardgameViewModel)
        {
            Boardgame           boardgame = new Boardgame();
            MapperConfiguration config    = new MapperConfiguration(cfg => cfg.CreateMap <EditBoardgameViewModel, Boardgame>());
            IMapper             mapper    = config.CreateMapper();

            boardgame                 = mapper.Map <Boardgame>(editBoardgameViewModel);
            boardgame.ModifiedBy      = HttpContext.User.Identity.Name;
            boardgame.ModifiedDate    = DateTime.Now;
            db.Entry(boardgame).State = EntityState.Modified;
            db.SaveChanges();
        }
Example #17
0
        private void AddBoardgame(CreateBoardgameViewModel viewModel)
        {
            Boardgame           boardgame = new Boardgame();
            MapperConfiguration config    = new MapperConfiguration(cfg => cfg.CreateMap <CreateBoardgameViewModel, Boardgame>());
            IMapper             mapper    = config.CreateMapper();

            boardgame             = mapper.Map <Boardgame>(viewModel);
            boardgame.CreatedBy   = HttpContext.User.Identity.Name;
            boardgame.CreatedDate = DateTime.Now;
            db.Boardgames.Add(boardgame);
            db.SaveChanges();
        }
Example #18
0
 public void Initialize()
 {
     b1 = new Boardgame {
         BoardgameName = "Matador", PlayerCount = "4", Audience = "7+", GameTime = "45", Distributor = "HashBro", GameTag = "Family", BoardgameId = 1
     };
     b2 = new Boardgame {
         BoardgameName = "Uno", PlayerCount = "2-4", Audience = "10+", GameTime = "30", Distributor = "HashBro", GameTag = "Family", BoardgameId = 2
     };
     b3 = new Boardgame {
         BoardgameName = "Monsterslayer", PlayerCount = "4", Audience = "15+", GameTime = "120", Distributor = "HashBro", GameTag = "Roleplay", BoardgameId = 3
     };
 }
Example #19
0
        private async Task AddNewBoardgameToDB(UserBoardgameListItem boardgame)
        {
            var boardgameEntity = new Boardgame();

            boardgameEntity.BggId         = boardgame.ObjectId;
            boardgameEntity.Name          = boardgame.Name;
            boardgameEntity.Image         = boardgame.Image;
            boardgameEntity.ThumbNail     = boardgame.Thumbnail;
            boardgameEntity.YearPublished = boardgame.YearPublished;

            _dbContext.BoardGames.Add(boardgameEntity);
            await _dbContext.SaveChangesAsync();
        }
Example #20
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Boardgame boardgame = db.Boardgame.Find(id);

            if (boardgame == null)
            {
                return(HttpNotFound());
            }
            return(View(boardgame));
        }
Example #21
0
        public string AddBoardgameToCollectionXml(string UserEmail, XmlDocument doc)
        {
            UserDetails user = _context.UserDetails.Where(u => u.Email == UserEmail).FirstOrDefault();

            if (user == null)
            {
                return("Error: The email supplied is not a valid user");
            }
            string    BggId = doc.SelectSingleNode("/boardgames/boardgame").Attributes["objectid"].Value;
            Boardgame game  = _context.Boardgames.Where(x => x.Bggid == BggId).FirstOrDefault();

            if (game == null)
            {
                game = new Boardgame
                {
                    Bggid              = BggId,
                    MaxPlayers         = short.TryParse(doc.SelectSingleNode("/boardgames/boardgame/maxplayers").InnerText, out var maxvalue) ? maxvalue : (short)0,
                    MinPlayers         = short.TryParse(doc.SelectSingleNode("/boardgames/boardgame/minplayers").InnerText, out var minvalue) ? minvalue : (short)0,
                    MaxPlayTimeMinutes = short.TryParse(doc.SelectSingleNode("/boardgames/boardgame/maxplaytime").InnerText, out var maxplayvalue) ? maxplayvalue : (short)0,
                    MinPlayTimeMinutes = short.TryParse(doc.SelectSingleNode("/boardgames/boardgame/minplaytime").InnerText, out var minplayvalue) ? minplayvalue : (short)0,
                    Name       = doc.SelectSingleNode("/boardgames/boardgame/name[@primary='true']").InnerText,
                    CoverImage = DownloadImage(doc.SelectSingleNode("/boardgames/boardgame/thumbnail").InnerText)
                };

                _context.Add(game);
                _context.SaveChanges();
            }

            var ubc = _context.UserBoardgameCollections.Where(x => x.BoardgameId == game.BoardgameId && x.UserDetailId == user.UserDetailId).SingleOrDefault();

            if (ubc == null)
            {
                var usergame = new UserBoardgameCollection
                {
                    BoardgameId  = game.BoardgameId,
                    UserDetailId = user.UserDetailId,
                    DateAdded    = DateTime.Now
                };


                _context.Add(usergame);
                _context.SaveChanges();

                return("Successfully added game to your collection");
            }
            else
            {
                return("This boardgame already belongs to your collection");
            }
        }
Example #22
0
        public ActionResult DynamicDelete(int?id)
        {
            if (id == null)
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }
            Boardgame boardgame = db.Boardgames.Find(id);

            if (boardgame == null)
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }
            db.Boardgames.Remove(boardgame);
            db.SaveChanges();
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
Example #23
0
        public BoardgameDTO Insert(Boardgame boardGame)
        {
            try
            {
                var model  = _mapper.Map <BoardgameDTO>(boardGame);
                var result = _repository.Boardgame.Add(model).Entity;
                _repository.SaveChanges();

                return(result);
            }
            catch (Exception e)
            {
                //Todo: Log error here
                throw e;
            }
        }
Example #24
0
        // GET: Boardgames/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Boardgame boardgame = db.Boardgames.Find(id);

            if (boardgame == null)
            {
                return(HttpNotFound());
            }
            EditBoardgameViewModel editBoardgameViewModel = GetEditBoardgameViewModel(boardgame);

            UpdateEditBoardgameViewModel(editBoardgameViewModel);
            return(View(editBoardgameViewModel));
        }
Example #25
0
        // GET: Boardgames/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Boardgame boardgame = db.Boardgames.Find(id);

            if (boardgame == null)
            {
                return(HttpNotFound());
            }

            UpdateBoardgameCall(boardgame.Id);
            DetailsBoardgameViewModel viewmodel = GetDetailsBoardgameViewModel(boardgame);

            return(View(viewmodel));
        }
Example #26
0
        public IActionResult Update(UpdateBoardgameModel boardgameModel)
        {
            if (ModelState.IsValid)
            {
                var boardgame = new Boardgame
                {
                    Id          = boardgameModel.Id,
                    Name        = boardgameModel.Name,
                    Image       = boardgameModel.Image,
                    Description = boardgameModel.Description,
                    Rating      = boardgameModel.Rating
                };

                if (boardgameModel.imageUpload != null)
                {
                    if (boardgameModel.imageUpload.FileName.Length > 0)
                    {
                        var webRoot  = _env.WebRootPath;
                        var filePath = Path.Combine(webRoot.ToString() + boardgame.Image);

                        if (boardgame.Image != null)
                        {
                            webRoot = _env.WebRootPath;
                            System.IO.File.Delete(filePath);
                        }

                        filePath = Path.Combine(webRoot.ToString() + "\\images\\games\\" +
                                                boardgameModel.imageUpload.FileName);

                        using (var stream = new FileStream(filePath, FileMode.Create))
                        {
                            boardgameModel.imageUpload.CopyTo(stream);
                        }
                        boardgame.Image = "\\images\\games\\" + boardgameModel.imageUpload.FileName;
                    }
                }

                _assets.Update(boardgame);

                return(RedirectToAction("Detail", new { id = boardgameModel.Id }));
            }

            return(View(boardgameModel));
        }
Example #27
0
        public async Task <ActionResult> AddNewGame(BoardgameViewModel boardViewModel, string redirectUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(boardViewModel));
            }

            var boardgame = new Boardgame
            {
                ProductName = boardViewModel.Name,
                Coast       = boardViewModel.Coast,
                Rang        = boardViewModel.Rang,
                Description = boardViewModel.Description,
                Count       = boardViewModel.Count
            };

            await _boardService.AddGamesAsync(boardgame);

            return(RedirectToLocal(redirectUrl));
        }
Example #28
0
        public async Task <Boardgame> LoadGame(int GameId)
        {
            try
            {
                Uri       teamDataURI = new Uri(string.Format(BASE_URL + "/thing?id={0}&stats=1&comments=1", GameId));
                XDocument xDoc        = await ReadData(teamDataURI);

                // LINQ to XML.
                IEnumerable <Boardgame> gameCollection = from Boardgame in xDoc.Descendants("items")
                                                         select new Boardgame
                {
                    Name              = (from p in Boardgame.Element("item").Elements("name") where p.Attribute("type").Value == "primary" select p.Attribute("value").Value).SingleOrDefault(),
                    GameId            = int.Parse(Boardgame.Element("item").Attribute("id").Value),
                    Image             = Boardgame.Element("item").Element("image") != null?Boardgame.Element("item").Element("image").Value         : string.Empty,
                    Thumbnail         = Boardgame.Element("item").Element("thumbnail") != null?Boardgame.Element("item").Element("thumbnail").Value : string.Empty,
                    Description       = Boardgame.Element("item").Element("description").Value,
                    MaxPlayers        = int.Parse(Boardgame.Element("item").Element("maxplayers").Attribute("value").Value),
                    MinPlayers        = int.Parse(Boardgame.Element("item").Element("minplayers").Attribute("value").Value),
                    YearPublished     = int.Parse(Boardgame.Element("item").Element("yearpublished").Attribute("value").Value),
                    PlayingTime       = int.Parse(Boardgame.Element("item").Element("playingtime").Attribute("value").Value),
                    AverageRating     = decimal.Parse(Boardgame.Element("item").Element("statistics").Element("ratings").Element("average").Attribute("value").Value),
                    BGGRating         = decimal.Parse(Boardgame.Element("item").Element("statistics").Element("ratings").Element("bayesaverage").Attribute("value").Value),
                    Rank              = GetRanking(Boardgame.Element("item").Element("statistics").Element("ratings").Element("ranks")),
                    Publishers        = (from p in Boardgame.Element("item").Elements("link") where p.Attribute("type").Value == "boardgamepublisher" select p.Attribute("value").Value).ToList(),
                    Designers         = (from p in Boardgame.Element("item").Elements("link") where p.Attribute("type").Value == "boardgamedesigner" select p.Attribute("value").Value).ToList(),
                    Artists           = (from p in Boardgame.Element("item").Elements("link") where p.Attribute("type").Value == "boardgameartist" select p.Attribute("value").Value).ToList(),
                    Comments          = LoadComments(Boardgame.Element("item").Element("comments")),
                    PlayerPollResults = LoadPlayerPollResults(Boardgame.Element("item").Element("poll")),
                    IsExpansion       = SetIsExpansion(Boardgame),
                    TotalComments     = int.Parse(Boardgame.Element("item").Element("comments").Attribute("totalitems").Value)
                };


                return(gameCollection.FirstOrDefault());
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Example #29
0
        public async Task <BGGUser> LoadUserDetails(string username)
        {
            try
            {
                Uri teamDataURI = new Uri(string.Format(BASE_URL + "/user?name={0}", username));

                XDocument xDoc = await ReadData(teamDataURI);

                // LINQ to XML.
                IEnumerable <BGGUser> users = from Boardgame in xDoc.Descendants("user")
                                              select new BGGUser
                {
                    Avatar   = GetStringValue(Boardgame.Element("avatarlink"), "value"),
                    Username = username
                };
                return(users.FirstOrDefault());
            }
            catch (Exception ex)
            {
                return(new BGGUser());
            }
        }
Example #30
0
        public async Task <IEnumerable <SearchResult> > Search(string query)
        {
            try
            {
                Uri teamDataURI = new Uri(string.Format(BASE_URL + "/search?query={0}&type=boardgame", query));

                XDocument xDoc = await ReadData(teamDataURI);

                // LINQ to XML.
                IEnumerable <SearchResult> gameCollection = from Boardgame in xDoc.Descendants("item")
                                                            select new SearchResult
                {
                    Name   = GetStringValue(Boardgame.Element("name"), "value"),
                    GameId = GetIntValue(Boardgame, "id")
                };
                return(gameCollection);
            }
            catch (Exception ex)
            {
                return(new List <SearchResult>());
            }
        }