コード例 #1
0
        public async Task <IActionResult> AddPlayerToGame([FromRoute] Guid id, [FromBody] AddPlayerModel model)
        {
            try
            {
                await _commandSender.Send(new RegisterPlayer(id, model.PlayerId, model.PlayerName, model.Version));

                return(Ok());
            }
            catch (GameAlreadyFinishedException)
            {
                return(BadRequest(typeof(GameAlreadyFinishedException).Name));
            }
            catch (GameAlreadyStartedException)
            {
                return(BadRequest(typeof(GameAlreadyStartedException).Name));
            }
            catch (PlayerIdInvalidException)
            {
                return(BadRequest(typeof(PlayerIdInvalidException).Name));
            }
            catch (PlayerAlreadyRegisteredInTheGameException)
            {
                return(BadRequest(typeof(PlayerAlreadyRegisteredInTheGameException).Name));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.ExceptionToString()));
            }
        }
コード例 #2
0
        public async Task <IActionResult> AddPlayer(AddPlayerModel model, IFormCollection image1)
        {
            // var webRoot = _environment.WebRootPath;
            //string managerId = Convert.ToString(image1["Id"]);
            string storePath = "/images/players/";
            var    path      = Path.Combine(
                Directory.GetCurrentDirectory(), "wwwroot", "images", "players",
                image1.Files[0].FileName);

            using (var stream = new FileStream(path, FileMode.Create))
            {
                await image1.Files[0].CopyToAsync(stream);
            }
            var player = new Players
            {
                PlayerName     = model.PlayerName,
                Birthplace     = model.Birthplace,
                DoB            = model.DoB,
                CountryId      = model.CountryId,
                TeamId         = model.TeamId,
                PositionId     = model.PositionId,
                PlayerImageUrl = storePath + model.ImageUpload.FileName,
            };
            await _playerService.Create(player);

            return(RedirectToAction("Index", "Players"));
        }
コード例 #3
0
        public PlayerModel AddPlayer(AddPlayerModel model)
        {
            var command = $@"
            INSERT INTO Player(
                FirstName,
                LastName,
                Profile)
            OUTPUT Inserted.Id
            VALUES(
                @FirstName,
                @LastName,
                @Profile)";

            var result = ExecCommandScaler <long>(command, model);

            if (result != 0)
            {
                return new PlayerModel
                       {
                           Id        = result,
                           FirstName = model.FirstName,
                           LastName  = model.LastName,
                           Profile   = model.Profile
                       }
            }
            ;

            return(null);
        }
コード例 #4
0
        public IHttpActionResult addTeamPlayer(int Id, AddPlayerModel model)
        {
            var  match      = leagueMatchRepository.GetById(Id);
            var  league     = leagueRepository.GetById(match.LeagueId);
            var  cards      = scoreCardRepository.GetMany(s => s.MatchId == match.MatchId && s.UserId == model.UserId);
            bool isMyLeague = league.Creator == model.UserId;
            bool extra      = false;

            if (cards.Count() >= 5)
            {
                extra = true;
            }

            LeagueScoreCard card = new LeagueScoreCard()
            {
                LeagueId     = league.LeagueId,
                TournamentId = league.TournamentId,
                UserId       = model.UserId,
                MatchId      = match.MatchId,
                PlayerId     = model.PlayerId,
                isPlaying    = false,
                Run          = 0,
                Wicket       = 0,
                Extra        = extra
            };

            scoreCardRepository.Add(card);
            unitOfWork.SaveChanges();
            cards = scoreCardRepository.GetMany(s => s.MatchId == match.MatchId);
            if (cards.Count() == 14)
            {
                match.TeamDone = true;
            }
            leagueMatchRepository.Update(match);

            unitOfWork.SaveChanges();
            string deviceId;

            if (isMyLeague)
            {
                deviceId = userRepository.GetById(league.Competitor).DeviceToken;
            }
            else
            {
                deviceId = userRepository.GetById(league.Creator).DeviceToken;
            }

            PlayerSelectedMessage msg = new PlayerSelectedMessage()
            {
                Tag           = "PLAYER_SELECTED",
                leagueMatchId = match.LeagueMatchId,
                playerId      = model.PlayerId,
                userId        = model.UserId
            };

            NotificationHelper.sendMessage(deviceId, msg);

            return(Ok(card));
        }
コード例 #5
0
ファイル: GameController.cs プロジェクト: wakeboy/rps-api
        public ActionResult JoinGame([FromBody] AddPlayerModel addPlayerModel)
        {
            var(game, errors) = this.gameService.JoinGame(addPlayerModel.GameId, addPlayerModel.PlayerName);

            if (errors.Any())
            {
                return(BadRequest(new ErrorResponse(errors)));
            }

            return(Ok(game));
        }
コード例 #6
0
    public IActionResult AddPlayers([FromRoute] Guid teamId, [FromBody] AddPlayerModel model)
    {
        var traceId = Guid.NewGuid();
        var team    = _clusterClient.GetGrain <ITeamGrain>(teamId);

        model.Names
        .Select(e => new AddPlayer(e, teamId, traceId, GetUserId))
        .ToList()
        .ForEach(e => team.AddPlayerAsync(e));

        return(Ok(new TraceResponse(traceId)));
    }
コード例 #7
0
ファイル: Game.cs プロジェクト: micklaw/Cards-Against-COVID
        public Game AddPlayer(AddPlayerModel model)
        {
            if (!IsOpen || IsOver)
            {
                return(this);
            }

            int count  = Players.Count();
            var player = new Player(++count, model.PlayerName)
            {
                Cards = model.Responses
            };

            Players.Add(player);
            return(this);
        }
コード例 #8
0
        public IActionResult Create()
        {
            var model = new AddPlayerModel();
            var teams = _db.Teams.OrderBy(c => c.TeamName)
                        .Select(x => new { Id = x.Id, Value = x.TeamName });

            model.TeamList = new SelectList(teams, "Id", "Value");

            var countries = _db.Countries.OrderBy(c => c.Name)
                            .Select(x => new { Id = x.Id, Value = x.Name });

            model.CountryList = new SelectList(countries, "Id", "Value");

            var positions = _db.Positions.OrderBy(c => c.Position)
                            .Select(x => new { Id = x.PositionId, Value = x.Position });

            model.PositionList = new SelectList(positions, "Id", "Value");

            return(View(model));
        }
コード例 #9
0
 public AddPlayerPage()
 {
     InitializeComponent();
     BindingContext = vm = new AddPlayerModel();
 }
コード例 #10
0
 public PlayerModel AddPlayer([FromBody] AddPlayerModel model)
 {
     return(_playerLib.AddPlayer(model));
 }