public PlayerResponse Response(PlayerRequest @request) { PlayerRequestModel req = _mapper.Map <PlayerRequestModel>(request); var player = _playerService.GetRandom(req); return(_mapper.Map <PlayerResponse>(player)); }
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)); } }
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; } }
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)); }
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); }
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)); } }
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; } }