Ejemplo n.º 1
0
        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() }));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }