Example #1
0
        public PlayerResponse Response(PlayerRequest @request)
        {
            PlayerRequestModel req = _mapper.Map <PlayerRequestModel>(request);
            var player             = _playerService.GetRandom(req);

            return(_mapper.Map <PlayerResponse>(player));
        }
Example #2
0
 public async Task <IActionResult> UpdateAsync(int id, PlayerRequestModel playerRequestModel)
 {
     try
     {
         return(Ok(await _services.UpdateOne(id, playerRequestModel)));
     }
     catch (FXSException fxse)
     {
         return(StatusCode(Int32.Parse(fxse.Code), new ExceptionModel {
             Message = fxse.Message, Code = fxse.Code
         }));
     }
     catch (Exception ex)
     {
         return(NotFound(ex.Message));
     }
 }
Example #3
0
        public async Task <string> AddOne(PlayerRequestModel playerRequestModel)
        {
            try
            {
                playerRequestModel._id      = ObjectId.GenerateNewId();
                playerRequestModel.Created  = DateTime.UtcNow;
                playerRequestModel.Modified = DateTime.UtcNow;
                playerRequestModel.Uid      = GenerateIdUtils.GenerateId();
                await _mongoCollection.InsertOneAsync(playerRequestModel);

                return(playerRequestModel.Uid);
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #4
0
        public Models.Player GetRandom(PlayerRequestModel req)
        {
            IEnumerable <Models.Player> players = _players;

            if (req.Position != null)
            {
                players = players.Where(x => x.Positions.Contains(req.Position));
            }
            if (req.RatingRange.HasValue && req.RatingRange.Value.lower != null)
            {
                players = players.Where(x => x.Rating >= req.RatingRange.Value.lower);
            }
            if (req.RatingRange.HasValue && req.RatingRange.Value.upper != null)
            {
                players = players.Where(x => x.Rating <= req.RatingRange.Value.upper);
            }

            return(GetRandomPlayerWeightedByRating(players));
        }
Example #5
0
        public async Task <PlayerResponseModel> UpdatePlayerAsync(string playerID, PlayerRequestModel playerModel)
        {
            if (string.IsNullOrWhiteSpace(playerID))
            {
                throw new NullReferenceException($"You need a player id to update this player");
            }

            if (playerModel == null)
            {
                throw new ArgumentNullException(nameof(playerModel), "Player Object cannot be null");
            }

            var playerCreateModel = new PlayerCreateModel
            {
                Player = playerModel
            };

            var result = await PatchActionAsync <PlayerCreateModel, PlayerReadModel>($"/{playerID}", playerCreateModel, null).ConfigureAwait(false);

            return(result?.Player ?? null);
        }
Example #6
0
 public async Task <IActionResult> AddOneAsync(PlayerRequestModel playerRequestModel)
 {
     try
     {
         if (ModelState.IsValid)
         {
             return(Ok(await _services.AddOne(playerRequestModel)));
         }
         throw new FXSException("Model is invalid", "401");
     }
     catch (FXSException fxse)
     {
         return(StatusCode(Int32.Parse(fxse.Code), new ExceptionModel {
             Message = fxse.Message, Code = fxse.Code
         }));
     }
     catch (Exception ex)
     {
         return(NotFound(ex.Message));
     }
 }
Example #7
0
        public async Task <object> UpdateOne(int id, PlayerRequestModel PlayerRequestModel)
        {
            try
            {
                var update = Builders <PlayerRequestModel> .Update.Set("created", DateTime.UtcNow);

                foreach (BsonElement item in PlayerRequestModel.ToBsonDocument())
                {
                    if (item.Name != "modified" && item.Name != "created" && item.Name != "_id" && item.Value.GetType() != typeof(BsonNull))
                    {
                        update = update.Set(item.Name, item.Value);
                    }
                }
                update = update.Set("modified", DateTime.UtcNow);
                await _mongoCollection.UpdateOneAsync(Builders <PlayerRequestModel> .Filter.Eq("uid", id.ToString()), update);

                return(string.Format("{0} update success", id));
            }
            catch (Exception)
            {
                throw;
            }
        }