Ejemplo n.º 1
0
        public async Task <bool> DispatchAsync(LotteryAwarded message)
        {
            try
            {
                Merchanter merchanter = _lotteryMerchanters.GetOrAdd(message.LvpMerchanerId, (merchanterId) =>
                {
                    return(_lotteryMerchanterApplicationService.FindMerchanterAsync(merchanterId).GetAwaiter().GetResult());
                });
                if (merchanter.IsNotice == false)
                {
                    return(true);
                }

                return(await _policy.ExecuteAsync(async() =>
                {
                    HttpResponseMessage responseMessage = (await _client.PostAsync(merchanter.NoticeAddress, new ByteArrayContent(_serializer.Serialize(new { OrderId = message.LvpOrderId, Amount = message.BonusAmount, Status = (int)message.AwardingType })))).EnsureSuccessStatusCode();
                    byte[] bytes = await responseMessage.Content.ReadAsByteArrayAsync();
                    Handle result = _serializer.Deserialize <Handle>(bytes);
                    _logger.LogInformation("Notice {0} result:{1}", message.LvpOrderId, result);
                    return true;
                }));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Notice error! {0}", message.LvpOrderId);
            }
            return(false);
        }
Ejemplo n.º 2
0
 public async Task <bool> DispatchAsync(LotteryTicketed message)
 {
     try
     {
         Merchanter merchanter = _lotteryMerchanters.GetOrAdd(message.LvpMerchanerId, (merchanterId) =>
         {
             return(_lotteryMerchanterApplicationService.FindMerchanterAsync(merchanterId).GetAwaiter().GetResult());
         });
         if (merchanter.IsNotice == false)
         {
             return(true);
         }
         await _policy.ExecuteAsync(async() =>
         {
             HttpResponseMessage responseMessage = (await _client.PostAsync(merchanter.TicketAddress, new ByteArrayContent(_serializer.Serialize(new { OrderId = message.LvpOrderId, TicketOdds = message.TicketedOdds ?? string.Empty, Status = (int)message.TicketingType })))).EnsureSuccessStatusCode();
             byte[] bytes = await responseMessage.Content.ReadAsByteArrayAsync();
             _logger.LogInformation("Notice {0} Response:{1}", message.LvpOrderId, Encoding.UTF8.GetString(bytes));
             Handle result = _serializer.Deserialize <Handle>(bytes);
             return(result != null && result.Ret == 0);
         });
     }
     catch (Exception ex)
     {
         _logger.LogError(ex, "Notice error! {0}", message.LvpOrderId);
     }
     return(true);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Deserializes the byte array into an instance of T
 /// </summary>
 /// <param name="serializer">Serializer</param>
 /// <param name="bytes">The data to deserialize</param>
 /// <typeparam name="T">The type to instantiate</typeparam>
 /// <returns>The deserialized object</returns>
 public static T Deserialize <T>(this INoticeSerializer serializer, byte[] bytes)
 {
     if (serializer == null)
     {
         throw new ArgumentNullException(nameof(serializer));
     }
     return((T)serializer.Deserialize(typeof(T), bytes));
 }