public BitPoker.Models.IResponse Get(BitPoker.Models.IRequest request) { BitPoker.Models.Messages.RPCResponse response = new BitPoker.Models.Messages.RPCResponse() { Id = request.Id }; switch (request.Method.ToUpper()) { case "GetPlayers": response.Result = this.playerRepo.All(); break; case "GetTables": response.Result = this.tableRepo.All(); break; default: response.Error = new BitPoker.Models.Messages.Code() { code = "-32601", message = "method not found" }; break; } return(response); }
public BitPoker.Models.IResponse Post(BitPoker.Models.IRequest model) { BitPoker.Models.Messages.RPCResponse response = new BitPoker.Models.Messages.RPCResponse() { Id = model.Id }; if (model.Method == "AddPlayer") { BitPoker.Models.Messages.AddPlayerRequest request = model.Params as BitPoker.Models.Messages.AddPlayerRequest; //need to include timestamp too Boolean valid = true; // base.Verify(request.BitcoinAddress, model.Id.ToString(), model.Signature); if (valid) { _repo.Add(request.Player); return(response); } else { response.Error = "invalid siganture"; return(response); } } else { response.Error = "invalid method"; return(response); } }
public void DisplayIRequest(BitPoker.Models.IRequest request) { if (request == null) { throw new ArgumentNullException("request"); } else { _displayIMessageDelegate(request); } }
public void Post(BitPoker.Models.IRequest request) { if (request.Method == "AddTableRequest") { BitPoker.Models.Messages.AddTableRequest model = request.Params as BitPoker.Models.Messages.AddTableRequest; Boolean valid = true; //base.Verify(model.BitcoinAddress, model.ToString(), request.Signature if (!valid) { throw new Exceptions.SignatureNotValidException(); } else { _repo.Add(model.Table); } } else { throw new NotImplementedException(); } }
public BitPoker.Models.IResponse Post(BitPoker.Models.IRequest request) { BitPoker.Models.Messages.RPCResponse response = new BitPoker.Models.Messages.RPCResponse() { Id = request.Id }; switch (request.Method.ToUpper()) { case "POST SMALL BLIND": case "SMALL BLIND": case "SB": AddSmallBlind(request.Params as BitPoker.Models.Messages.ActionMessage); break; case "POST BIG BLIND": case "BIG BLIND": case "BB": //AddBigBlind(request); break; } //NOTE: THIS IS WHERE THE STUB AI LOGIC SHOULD EXIST. // //if (MemoryCache.Default.Contains(message.TableId.ToString())) //{ // Models.Hand.Table table = (Models.Hand.Table)MemoryCache.Default[message.TableId.ToString()]; // if (table != null) // { // ////Alice pub key // //String key = "041FA97EFD760F26E93E91E29FDDF3DDDDD3F543841CF9435BDC156FB73854F4BF22557798BA535A3EE89A62238C5AFC7F8BF1FA0985DC4E1A06C25209BAB78BD1"; // //Byte[] aliceKeyAsBytes = NBitcoin.DataEncoders.Encoders.Hex.DecodeData(key); // //NBitcoin.PubKey aliceKey = new NBitcoin.PubKey(aliceKeyAsBytes); // //Byte[] userKeyAsBytes = NBitcoin.DataEncoders.Encoders.Hex.DecodeData(buyInRequest.PubKey); // //NBitcoin.PubKey userKey = new NBitcoin.PubKey(userKeyAsBytes); // //var scriptPubKey = NBitcoin.PayToMultiSigTemplate.Instance.GenerateScriptPubKey(2, new[] { aliceKey, userKey }); // } //} //BitcoinPubKeyAddress address = new BitcoinPubKeyAddress(request.BitcoinAddress); //bool verified = address.VerifyMessage(request.ToString(), request.Signature); //if (verified != true) //{ // throw new Exceptions.SignatureNotValidException(); //} //else //{ // //Some API // var hand = this.handRepo.Find(request.HandId); // foreach(BitPoker.Models.Messages.ActionMessage previousAction in hand.History) // { // //verify // } // var lastAction = hand.History.Last(); // String[] allowedAction = new String[1]; // switch (lastAction.Action.ToUpper()) // { // case "POST SMALL BLIND": // case "SMALL BLIND": // case "SB": // allowedAction[0] = "BIG BLIND"; // break; // case "POST BIG BLIND": // case "BIG BLIND": // case "BB": // break; // } // switch(request.Action.ToUpper()) // { // case "POST SMALL BLIND": // case "SMALL BLIND": // case "SB": // break; // case "POST BIG BLIND": // case "BIG BLIND": // case "BB": // AddBigBlind(request); // break; // } // //Now notify next player for their action: // hand = this.handRepo.Find(request.HandId); // lastAction = hand.History.Last(); // String bitcoinAddress = lastAction.BitcoinAddress; // var player = hand.Players[hand.PlayerToAct]; //} return(response); }
public void SendRequest(BitPoker.Models.IRequest request) { String json = Newtonsoft.Json.JsonConvert.SerializeObject(request); SendMessage(json); }