Exemplo n.º 1
0
        /// <summary>
        /// 发放兑换码
        /// </summary>
        /// <returns></returns>
        private async Task <bool> CreateRedemptionCode()
        {
            var result             = false;
            var generateCodeResult = new Service.GroupBuying.Models.ResultModel.ResultModel <RedemptionResult>()
            {
                IsSuccess = false
            };

            if (string.IsNullOrEmpty(_task.RedemptionCode))
            {
                generateCodeResult = await Proxy.GroupBuyingServiceProxy.GenerateUSRedemptionCode(new GenerateUSRedemptionCodeRequest()
                {
                    ConfigId = _redemptionCodeConfig,
                    UserId   = _task.UserId,
                    Quantity = _redemptionCodeCount
                });

                if (generateCodeResult.IsSuccess)
                {
                    await _gfDal.UpdateGFBankRedemptionCodeTaskRedemptionCode(_task.PKID, generateCodeResult.Data.RedemptionCode);
                }
            }
            else
            {
                var redemptionResult = await Proxy.GroupBuyingServiceProxy.GetRedemptionCodeDetail(_task.RedemptionCode);

                if (redemptionResult != null)
                {
                    generateCodeResult.Data      = redemptionResult;
                    generateCodeResult.IsSuccess = true;
                }
            }
            if (generateCodeResult.IsSuccess && generateCodeResult.Data?.RedeemMrCodeItem != null)
            {
                if (string.Equals(generateCodeResult.Data.Status, "2Redeemed"))
                {
                    return(true);
                }
                var reedemRedemptionRequest = new ReedemRedemptionRequest()
                {
                    RedemptionCode   = generateCodeResult.Data.RedemptionCode,
                    UserId           = _task.UserId,
                    RedeemMrCodeItem = generateCodeResult.Data.RedeemMrCodeItem.Select(s => new RedemptionRequestItem()
                    {
                        PKID      = s.PKID,
                        IsChoosed = true
                    })
                };
                var redeemResult = await Proxy.GroupBuyingServiceProxy.RedeemRedemptionCodeByChoice(reedemRedemptionRequest);

                if (redeemResult.Success)
                {
                    result = true;
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 兑换兑换码
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public static async Task <RedeemRedemptionCodeResult> RedeemRedemptionCodeByChoice(ReedemRedemptionRequest request)
        {
            var result = new RedeemRedemptionCodeResult()
            {
                Success = false
            };

            try
            {
                using (var client = new RedemptionCodeClient())
                {
                    var serviceResult = await client.RedeemRedemptionCodeByChoiceAsync(request);

                    serviceResult.ThrowIfException(true);
                    result = serviceResult.Result;
                }
            }
            catch (Exception ex)
            {
                Logger.Error("GroupBuying兑换通用兑换码接口异常", ex);
            }

            return(result);
        }