public JsonResult CreateBet(CreateBet betInfo) { JObject transactionJSON = new JObject(); JObject subtransactionJSON = new JObject(); transactionJSON.Add("$class", "horsera.BetToHorse"); transactionJSON.Add("horse", "resource:horsera.Horse#" + betInfo.horseId); transactionJSON.Add("player", "resource:horsera.Player#" + betInfo.playerId); transactionJSON.Add("betAmount", betInfo.betAmount); transactionJSON.Add("race", "resource:horsera.Race#" + betInfo.raceId); string json = JsonConvert.SerializeObject(transactionJSON); JObject jsonResult = (JObject)JsonConvert.DeserializeObject(horseRestService.httpRequestService(json, "BetToHorse", "POST", null)); return(Json(new { transactionId = jsonResult["transactionId"].ToString() })); }
public override async Task <bool> CurrentExecuteAsync <T>(Message message, T context) { var chatId = message.Chat.Id; var parts = message.Text.Split('-', StringSplitOptions.RemoveEmptyEntries); var len = parts.Length; if (!new[] { 2, 3 }.Contains(len)) { var err = new MessageQueue { Chat = message.Chat, Text = StringsResource.BetActivityUnexpectedFormatMessage }; _queueMessagesService.Enqueue(err); _logger.LogWarning("Wrong format when remove a bet from chat {0}", chatId); return(false); } var fail = new MessageQueue { Chat = message.Chat, Text = StringsResource.FailDeleteActivityMessage }; try { _logger.LogInformation("The correct format when delete a bet. Delete a bet."); var lm = new MessageQueue { Chat = message.Chat, Text = StringsResource.LoadingMessage }; _queueMessagesService.Enqueue(lm); var b = new CreateBet { Bidder = message.GetUserNameOrLastFirstName() }; b.Speaker = parts[0].Trim(); b.Rate = uint.Parse(parts[1].Trim()); b.Ride = len == 3 ? parts[2].NormalizeRideValue() : default; var currentScore = await _betPlatformService.DeleteRateForBetAsync(b); if (!currentScore.HasValue) { _logger.LogInformation("Fail created bet from chat {0}", chatId); _queueMessagesService.Enqueue(fail); return(false); } var successfullyMessage = len == 3 ? StringsResource.SuccessfullyBetRemove : StringsResource.SuccessfullyBetsRemove; successfullyMessage += Environment.NewLine + string.Format(StringsResource.CurrentScoreMessage, currentScore); var success = new MessageQueue { Chat = message.Chat, Text = successfullyMessage }; _queueMessagesService.Enqueue(success); } catch (Exception ex) when(ex is UnexpectedFormatMessageException) { _logger.LogError(ex, "Error when delete a bet."); var formatMessage = new MessageQueue { Chat = message.Chat, Text = ex.Message }; _queueMessagesService.Enqueue(formatMessage); } catch (Exception ex) { _logger.LogError(ex.Message, "Error when delete a bet."); _queueMessagesService.Enqueue(fail); return(false); } return(true); }
public override async Task <bool> CurrentExecuteAsync <T>(Message message, T context) { var chatId = message.Chat.Id; string[] parts = message.Text.Split('-', StringSplitOptions.RemoveEmptyEntries); if (parts.Length != SegmentLength) { var err = new MessageQueue { Chat = message.Chat, Text = StringsResource.BetActivityUnexpectedFormatMessage }; _queueMessagesService.Enqueue(err); _logger.LogWarning("Wrong format message from chat {0}", chatId); return(false); } _logger.LogInformation("The correct format message from chat {0}", chatId); var lm = new MessageQueue { Chat = message.Chat, Text = StringsResource.LoadingMessage }; _queueMessagesService.Enqueue(lm); var fail = new MessageQueue { Chat = message.Chat, Text = StringsResource.FailCreatedActivityMessage }; try { var bidder = message.GetUserNameOrLastFirstName(); var speaker = parts[0].Trim(); var rate = parts[1].Trim(); var ride = parts[2].NormalizeRideValue(); var bet = new CreateBet { Rate = uint.Parse(rate), Ride = ride, Speaker = speaker, Bidder = bidder }; var currentScore = await _betPlatformService.CreateBetAsync(bet); if (!currentScore.HasValue) { _logger.LogInformation("Fail created bet from chat {0}", chatId); _queueMessagesService.Enqueue(fail); return(false); } var tSuccess = string.Format(StringsResource.SuccessBetActivity, currentScore); var success = new MessageQueue { Chat = message.Chat, Text = tSuccess }; _queueMessagesService.Enqueue(success); _logger.LogInformation("Bet successfully created from chat {0}", chatId); return(true); } catch (Exception ex) when(ex is UnexpectedFormatMessageException) { _logger.LogError(ex, "Error when create bets"); var formatMessage = new MessageQueue { Chat = message.Chat, Text = ex.Message }; _queueMessagesService.Enqueue(formatMessage); } catch (Exception ex) { _logger.LogError(ex, "Error when create bets"); _queueMessagesService.Enqueue(fail); } return(false); }