Exemplo n.º 1
0
        public void Test_Cache()
        {
            try {
                AuthRequest(this.aliServerCredentials.clientID, this.aliServerCredentials.clientSecret, this.aliServerCredentials.username, this.aliServerCredentials.userPwd);
                Console.WriteLine(this.token);
            } catch (Exception e) {
                Console.WriteLine("Failed to get access token", e.Message);
                throw new HttpRequestException("Failed to get access token");
            }

            Console.WriteLine(string.Format("==={0},=========={1}======", this.model.aId, this.model.aliMemberId));
            this.callAvailCredit();
            this.callAvailCredit();
            //this.callAvailCredit();
            //this.callAvailCredit();

            this.model = new AlibabaDto {
                requestId   = "000001",
                responseId  = "1000001",
                aId         = "23504",
                aliMemberId = 789,
                loanId      = 0
            };
            Console.WriteLine(string.Format("==={0},=========={1}======", this.model.aId, this.model.aliMemberId));
            // other
            this.callAvailCredit();
            this.callAvailCredit();
            //this.callAvailCredit();
            //this.callAvailCredit();
        }
Exemplo n.º 2
0
        }        //Testtttt

        private string CacheKeyCustomerAliMember(AlibabaDto data)
        {
            StringBuilder sb = new StringBuilder(ActionContext.ControllerContext.ControllerDescriptor.ControllerName).Append(Helper.CACHE_KEY_SEPARATOR).Append(ActionContext.ActionDescriptor.ActionName).Append(Helper.CACHE_KEY_SEPARATOR);

            sb.Append("aId").Append(data.aId).Append(Helper.CACHE_KEY_SEPARATOR);
            sb.Append("aliMemberId").Append(data.aliMemberId).Append(Helper.CACHE_KEY_SEPARATOR);
            sb.Append(":").Append(this._responseMediaType);
            return(sb.ToString());
        }         //CacheKeyCustomerAliMember
Exemplo n.º 3
0
 public void FixtureInit()
 {
     this.model = new AlibabaDto {
         requestId   = "000001",
         responseId  = "1000001",
         aId         = 18234,
         aliMemberId = 12345,
         loanId      = 0
     };
 }
Exemplo n.º 4
0
 public void FixtureInit()
 {
     this.model = new AlibabaDto {
         requestId   = "000771",
         responseId  = "000771",
         aId         = "358",         // 23504,
         aliMemberId = 710526132,     // 789,
         loanId      = 0
     };
 }
Exemplo n.º 5
0
        public async Task <IHttpActionResult> GetAlibabaPaymentRequest([FromBody] AlibabaContractDto data)
        {
            Trace.TraceError(data.ToString());
            try
            {
                ServiceClient             client = new ServiceClient();
                AlibabaSaleContractResult result = client.Instance.SaleContract(data).Result;

                string url = ActionContext.Request.RequestUri.ToString();

                var response = new AlibabaDto()
                {
                    requestId   = data.requestId,
                    responseId  = data.responseId,
                    aId         = data.aId,
                    aliMemberId = data.aliMemberId,
                    url         = url
                };

                if (result.aId == null && result.aliMemberId == null)
                {
                    response.errCode = AlibabaErrorCode.SYSTEM_CUSTOMER_ID_ALI_MEMBER_ID_MISMATCH;
                    response.errMsg  = AlibabaErrorCode.SYSTEM_CUSTOMER_ID_ALI_MEMBER_ID_MISMATCH.DescriptionAttr();
                    Helper.SaveApiLog <AlibabaContractDto, AlibabaDto>(data, response, data.requestId, data.aId, "400", "", response.errCode.DescriptionAttr(), response.errMsg, response.url, ActionContext.Request.Headers);
                    return(BadRequest(response.errMsg));
                }

                // customerID not found in system DB
                if (result.aId == null)
                {
                    response.errCode = AlibabaErrorCode.SYSTEM_CUSTOMER_ID_NOT_FOUND;
                    response.errMsg  = AlibabaErrorCode.SYSTEM_CUSTOMER_ID_NOT_FOUND.DescriptionAttr();
                    Helper.SaveApiLog <AlibabaContractDto, AlibabaDto>(data, response, data.requestId, data.aId, "400", "", response.errCode.DescriptionAttr(), response.errMsg, response.url, ActionContext.Request.Headers);
                    return(BadRequest(response.errMsg));
                }

                // ali memberID not found in system DB
                if (result.aliMemberId == null)
                {
                    response.errCode = AlibabaErrorCode.SYSTEM_ALI_MEMBER_ID_NOT_FOUND;
                    response.errMsg  = AlibabaErrorCode.SYSTEM_ALI_MEMBER_ID_NOT_FOUND.DescriptionAttr();
                    Helper.SaveApiLog <AlibabaContractDto, AlibabaDto>(data, response, data.requestId, data.aId, "400", "", response.errCode.DescriptionAttr(), response.errMsg, response.url, ActionContext.Request.Headers);
                    return(BadRequest(response.errMsg));
                }

                Helper.SaveApiLog <AlibabaContractDto, AlibabaDto>(data, response, data.requestId, data.aId, "200", "", response.errCode.DescriptionAttr(), response.errMsg, response.url, this.ActionContext.Request.Headers);

                return(Ok(response));
            }
            catch (Exception e)
            {
                Trace.TraceError(DateTime.UtcNow + ": " + e);
                return(InternalServerError());
            }
        }
Exemplo n.º 6
0
        //[CacheOutput(ClientTimeSpan = 7200, ServerTimeSpan = 7200, ExcludeQueryStringFromCacheKey = true)]  // 60sec*60min*2hours
        public async Task <IHttpActionResult> RequalifyCustomer([FromBody] AlibabaDto data)
        {
            var    cache          = Configuration.CacheOutputConfiguration().GetCacheOutputProvider(Request);
            string cachKey        = CacheKeyCustomerAliMember(data);
            var    cachedResponse = (AlibabaDto)cache.Get(cachKey);

            if (cachedResponse != null && cachedResponse.aId == data.aId && cachedResponse.aliMemberId == data.aliMemberId)
            {
                Helper.SaveApiLog <AlibabaDto, AlibabaDto>(data, cachedResponse, data.requestId, data.aId, "200", "from cache", cachedResponse.errCode.DescriptionAttr(), cachedResponse.errMsg, cachedResponse.url, ActionContext.Request.Headers);
                return(Ok(cachedResponse));
            }

            try {
                ServiceClient client = new ServiceClient();
                client.Instance.RequalifyCustomer(data.aId, data.aliMemberId);
                string url = ActionContext.Request.RequestUri.ToString();

                var response = new AlibabaDto()
                {
                    requestId   = data.requestId,
                    responseId  = data.responseId,
                    aId         = data.aId,
                    aliMemberId = data.aliMemberId,
                    errCode     = AlibabaErrorCode.REQUALIFY_STARTED,
                    errMsg      = AlibabaErrorCode.REQUALIFY_STARTED.DescriptionAttr(),
                    url         = url
                };

                Helper.SaveApiLog <AlibabaDto, AlibabaDto>(data, response, data.requestId, data.aId, "200", "", response.errCode.DescriptionAttr(), response.errMsg, response.url, ActionContext.Request.Headers);

                // set cache for 1 minute
                cache.Add(cachKey, response, DateTime.Now.AddHours(2), null);

                return(Ok(response));
            } catch (Exception e) {
                Trace.TraceError(DateTime.UtcNow + ": " + e);
                return(InternalServerError());
            }
        }        //RequalifyCustomer
Exemplo n.º 7
0
        [CacheOutput(ClientTimeSpan = 60, ServerTimeSpan = 60, ExcludeQueryStringFromCacheKey = true)]         // client cache length in seconds
        public async Task <IHttpActionResult> GetAlibabaCustomerAvailableCredit([FromBody] AlibabaDto data)
        {
            var    cache          = Configuration.CacheOutputConfiguration().GetCacheOutputProvider(Request);
            string cachKey        = CacheKeyCustomerAliMember(data);
            var    cachedResponse = (AlibabaDto)cache.Get(cachKey);

            if (cachedResponse != null && cachedResponse.aId == data.aId && cachedResponse.aliMemberId == data.aliMemberId)
            {
                Helper.SaveApiLog <AlibabaDto, AlibabaDto>(data, cachedResponse, data.requestId, data.aId, "200", "from cache", cachedResponse.errCode.DescriptionAttr(), cachedResponse.errMsg, cachedResponse.url, ActionContext.Request.Headers);
                return(Ok(cachedResponse));
            }

            try {
                ServiceClient client = new ServiceClient();
                var           result = client.Instance.CustomerAvaliableCredit(data.aId, data.aliMemberId).Result;

                string url = ActionContext.Request.RequestUri.ToString();

                var response = new AlibabaDto()
                {
                    requestId       = data.requestId,
                    responseId      = data.responseId,
                    aId             = data.aId,
                    aliMemberId     = data.aliMemberId,
                    availableCredit = result,
                    url             = url
                };

                // customerID and aliMemberID doesn't match each other in in system DB
                if (result.aId == null && result.aliMemberId == null)
                {
                    response.errCode = AlibabaErrorCode.SYSTEM_CUSTOMER_ID_ALI_MEMBER_ID_MISMATCH;
                    response.errMsg  = AlibabaErrorCode.SYSTEM_CUSTOMER_ID_ALI_MEMBER_ID_MISMATCH.DescriptionAttr();
                    Helper.SaveApiLog <AlibabaDto, AlibabaDto>(data, response, data.requestId, data.aId, "400", "", response.errCode.DescriptionAttr(), response.errMsg, response.url, ActionContext.Request.Headers);
                    return(BadRequest(response.errMsg));
                }

                // customerID not found in system DB
                if (result.aId == null)
                {
                    response.errCode = AlibabaErrorCode.SYSTEM_CUSTOMER_ID_NOT_FOUND;
                    response.errMsg  = AlibabaErrorCode.SYSTEM_CUSTOMER_ID_NOT_FOUND.DescriptionAttr();
                    Helper.SaveApiLog <AlibabaDto, AlibabaDto>(data, response, data.requestId, data.aId, "400", "", response.errCode.DescriptionAttr(), response.errMsg, response.url, ActionContext.Request.Headers);
                    return(BadRequest(response.errMsg));
                }

                // ali memberID not found in system DB
                if (result.aliMemberId == null)
                {
                    response.errCode = AlibabaErrorCode.SYSTEM_ALI_MEMBER_ID_NOT_FOUND;
                    response.errMsg  = AlibabaErrorCode.SYSTEM_ALI_MEMBER_ID_NOT_FOUND.DescriptionAttr();
                    Helper.SaveApiLog <AlibabaDto, AlibabaDto>(data, response, data.requestId, data.aId, "400", "", response.errCode.DescriptionAttr(), response.errMsg, response.url, ActionContext.Request.Headers);
                    return(BadRequest(response.errMsg));
                }

                if (result.creditLine == null)
                {
                    response.errCode = AlibabaErrorCode.SYSTEM_NO_VALID_CREDITLINE_FOR_CUSTOMER;
                    response.errMsg  = AlibabaErrorCode.SYSTEM_NO_VALID_CREDITLINE_FOR_CUSTOMER.DescriptionAttr();
                }

                Helper.SaveApiLog <AlibabaDto, AlibabaDto>(data, response, data.requestId, data.aId, "200", "", response.errCode.DescriptionAttr(), response.errMsg, response.url, ActionContext.Request.Headers);

                // set cache for 1 minute
                cache.Add(cachKey, response, DateTime.Now.AddSeconds(60), null);

                return(Ok(response));
            } catch (Exception e) {
                Trace.TraceError(DateTime.UtcNow + ": " + e);
                return(InternalServerError());
            }
        }        //GetAlibabaCustomerAvailableCredit
Exemplo n.º 8
0
 //	[Authorize(Roles = "PartnerAlibaba")]
 // [Authorize(Users = "partherAppAlibaba")]
 //	[Authorize(Roles="user")]
 //	[Authorize]
 //[ClaimsAuthorize]
 public async Task <IHttpActionResult> GetAlibabaCustomerAvailableCredit([FromBody] AlibabaDto data)
 {
     //	Console.WriteLine("data: {1}, {2}, {3}, {0}", data.aId, data.aliMemberId, data.requestId, data.responseId);
     return(Ok(data));
 }