コード例 #1
0
 public void CreateOrUpdate(PlayerBindingModel model)
 {
     using (var context = new Database())
     {
         Player element = context.Players.FirstOrDefault(rec => rec.PlayerName == model.PlayerName && rec.Id != model.Id);
         if (element != null)
         {
             //название
             throw new Exception("Уже есть игрок с таким названием");
         }
         if (model.Id.HasValue)
         {
             element = context.Players.FirstOrDefault(rec => rec.Id ==
                                                      model.Id);
             if (element == null)
             {
                 throw new Exception("Элемент не найден");
             }
         }
         else
         {
             element = new Player();
             context.Players.Add(element);
         }
         element.PlayerName = model.PlayerName;
         element.DateDeath  = model.DateDeath;
         element.Score      = model.Score;
         element.Type       = model.Type;
         element.GameId     = model.GameId;
         context.SaveChanges();
     }
 }
コード例 #2
0
        public ActionResult Edit(PlayerBindingModel model)
        {
            if (ModelState.IsValid)
            {
                var player = this.db.Players.Find(model.Id);
                player = Mapper.Map <PlayerBindingModel, Player>(model);
                this.db.Players.AddOrUpdate(a => a.Id, player);
                this.db.SaveChanges();

                player = this.db.Players.Find(model.Id);

                var country = this.db.Countries.Find(model.CountryId);
                player.Country = country;
                this.db.Entry(player.Country).State = EntityState.Modified;

                var city = this.db.Cities.Find(model.CityId);
                player.City = city;
                this.db.Entry(player.City).State = EntityState.Modified;

                var team = this.db.Teams.Find(model.TeamId);
                player.Team = team;
                this.db.Entry(player.Team).State = EntityState.Modified;

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
コード例 #3
0
        public ActionResult Create(PlayerBindingModel bind)
        {
            if (this.ModelState.IsValid)
            {
                var player  = Mapper.Map <PlayerBindingModel, Player>(bind);
                var country = this.db.Countries.Find(bind.CountryId);
                player.Country = country;
                var city = this.db.Cities.Find(bind.CityId);
                player.City = city;
                var team = this.db.Teams.Find(bind.TeamId);
                player.Team = team;
                this.db.Players.Add(player);
                this.db.SaveChanges();

                return(this.RedirectToAction("Index"));
            }

            var countries     = this.db.Countries.ToList();
            var teams         = this.db.Teams.ToList();
            var countryModels = Mapper.Map <IEnumerable <Country>, IEnumerable <CountryBindingModel> >(countries);
            var teamModels    = Mapper.Map <IEnumerable <Team>, IEnumerable <TeamBindingModel> >(teams);
            var cities        = this.db.Cities.ToList();
            var citiesModel   = Mapper.Map <IEnumerable <City>, IEnumerable <CityBindingModel> >(cities);
            var bindingModel  = new PlayerBindingModel
            {
                AvailableCountries = countryModels,
                AvailableTeams     = teamModels,
                AvailableCities    = citiesModel
            };

            return(View(bindingModel));
        }
コード例 #4
0
        /// <summary>
        /// validates entry retruned by form then sends
        /// request to the LudoAPI with info to start an ew game
        /// </summary>
        /// <param name="players"></param>
        /// <returns>Eitehr return an index view if
        /// validation fails along with error messages
        /// or redirect to Game view</returns>
        public IActionResult CreateGame(PlayerBindingModel players)
        {
            if (!ModelState.IsValid)
            {
                return(View("CreateGame", players));
            }

            List <Player> addedPlayers = _extractor.AddedPlayers(players);

            int gameID;

            try
            {
                gameID = _ludoProccessor.CreateNewGame();
                _log.LogInformation("New game Created with id: {gameId}.", gameID);
            }
            catch
            {
                _log.LogError("Connection to API Lost"); // Logging info
                return(View("TemporarErrorPage"));
            }

            foreach (var p in addedPlayers)
            {
                _ludoProccessor.AddNewPalyer(gameID, p.Name, p.PlayerColor);
            }

            _ludoProccessor.StartGame(gameID);

            var model = CreateGameViewModel(gameID);

            return(View("Game", model));
        }
コード例 #5
0
        public IActionResult Register([FromBody] PlayerBindingModel player)
        {
            string ipAddress = Request.HttpContext.Connection.RemoteIpAddress.ToString();

            bool isRegistered = _playerService.RegisterPlayer(player.Username, ipAddress);

            if (isRegistered)
            {
                return(Ok(player));
            }

            return(BadRequest(new
            {
                message = "Username already exists."
            }));
        }
コード例 #6
0
 public void Delete(PlayerBindingModel model)
 {
     using (var context = new Database())
     {
         Player element = context.Players.FirstOrDefault(rec => rec.Id ==
                                                         model.Id);
         if (element != null)
         {
             context.Players.Remove(element);
             context.SaveChanges();
         }
         else
         {
             throw new Exception("Элемент не найден");
         }
     }
 }
コード例 #7
0
        public ActionResult Create()
        {
            var countries     = this.db.Countries.ToList();
            var teams         = this.db.Teams.ToList();
            var countryModels = Mapper.Map <IEnumerable <Country>, IEnumerable <CountryBindingModel> >(countries);
            var teamModels    = Mapper.Map <IEnumerable <Team>, IEnumerable <TeamBindingModel> >(teams);
            var cities        = this.db.Cities.ToList();
            var citiesModel   = Mapper.Map <IEnumerable <City>, IEnumerable <CityBindingModel> >(cities);
            var bindingModel  = new PlayerBindingModel
            {
                AvailableCountries = countryModels,
                AvailableTeams     = teamModels,
                AvailableCities    = citiesModel
            };

            return(View(bindingModel));
        }
コード例 #8
0
 public List <PlayerViewModel> Read(PlayerBindingModel model)
 {
     using (var context = new Database())
     {
         return(context.Players
                .Where(rec => model == null || rec.Id == model.Id ||
                       (model.DateFrom.HasValue && model.DateTo.HasValue &&
                        rec.Game.DateCreate >= model.DateFrom && rec.Game.DateCreate <= model.DateTo))
                .Select(rec => new PlayerViewModel
         {
             Id = rec.Id,
             GameId = rec.GameId,
             PlayerName = rec.PlayerName,
             DateDeath = rec.DateDeath,
             Type = rec.Type,
             Score = rec.Score
         })
                .ToList());
     }
 }