예제 #1
0
        } // SaveApiCall

        public AlibabaSaleContractActionResult SaleContract(AlibabaContractDto dto)
        {
            SaleContract instance;

            ExecuteSync(out instance, null, null, dto);

            return new AlibabaSaleContractActionResult { Result = instance.Result };

        } // SaveApiCall
예제 #2
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());
            }
        }
 public void FixtureInit()
 {
     this.model = new AlibabaContractDto {
         requestId          = "142857",
         responseId         = "543",
         loanId             = 24314474,
         orderNumber        = "23456780",
         sellerBusinessName = "Dabao Trading Ltd.",
         sellerAliMemberId  = "41523",
         sellerStreet1      = "128 Xihu Road",
         sellerCity         = "Hangzhou",
         sellerState        = "Zhejiang",
         sellerCountry      = "China",
         sellerPostalCode   = "310016",
         sellerAuthRepFname = "Hong",
         sellerAuthRepLname = "Zhang",
         sellerPhone        = "865218526",
         sellerFax          = "865218526",
         sellerEmail        = "*****@*****.**",
         buyerBusinessName  = "A PLAZA DRIVING SCHOOL",
         aliMemberId        = 131,
         aId                      = "0170363",
         buyerStreet1             = "926 E LEWELLING BLVD",
         buyerCity                = "HAYWARD",
         buyerState               = "CA",
         buyerCountry             = "U.S.A",
         buyerZip                 = "94541",
         buyerAuthRepFname        = "MICHAEL",
         buyerAuthRepLname        = "ARTE",
         buyerPhone               = "415222444",
         buyerEmail               = "*****@*****.**",
         shippingMark             = "WT12345678",
         totalOrderAmount         = 88000,
         deviationQuantityAllowed = 20,
         orderAddtlDetails        = "",
         shippingTerms            = "asd",
         shippingDate             = new DateTime(2015, 03, 01),
         loadingPort              = "Shanghai",
         destinationPort          = "Oakland,CA",
         orderDeposit             = 1000,
         beneficiaryBank          = "Bank of China",
         bankAccountNumber        = 1234567890,
         bankStreetAddr1          = "108 Ganjiang Road",
         bankCity                 = "Hangzhou",
         bankState                = "Zhejiang",
         bankCountry              = "China",
         bankPostalCode           = "310020",
         swiftcode                = "ADBNCNBJCD1",
         orderCurrency            = "gbp",
         orderItems               = new OrderItems[] {
             new OrderItems()
             {
                 orderProdNumber = 0105, productName = "Battery", productSpecs = "AAA", productQuantity = 20000, productUnit = 6, productUnitPrice = 2, productTotalAmount = 48000
             },
             new OrderItems()
             {
                 orderProdNumber = 0106, productName = "Screw", productSpecs = "Phillips", productQuantity = 50000, productUnit = 100, productUnitPrice = 8, productTotalAmount = 40000
             }
         }
     };
 }
예제 #4
0
 public SaleContract(AlibabaContractDto dto)
 {
     this.contract = dto;
     this.Result   = new AlibabaSaleContractResult();
 }
예제 #5
0
        private AlibabaContract Parse(AlibabaContractDto Data)
        {
            int?customerID = DB.ExecuteScalar <int?>(
                "CustomerIdByRefNum",
                CommandSpecies.StoredProcedure,
                new QueryParameter("CustomerRefNum", Data.aId)
                );

            if (customerID == null)
            {
                Log.Alert("Customer with refnumber {0} not found", Data.aId);
                this.Result.aId = null;
                return(null);
            }

            DB.FillFirst(
                this.Result,
                "LoadSaleContractResult",
                CommandSpecies.StoredProcedure,
                new QueryParameter("CustomerId", customerID),
                new QueryParameter("AliMemberId", Data.aliMemberId)
                );

            if (this.Result.aliMemberId == null)
            {
                Log.Alert("aliMemberId {0} for customer refnum {1} not found", Data.aliMemberId, Data.aId);
                return(null);
            }

            var Res = new AlibabaContract();

            Res.Buyer.CustomerId = (int)customerID;

            // contract
            TryRead(() => Res.RequestId                = Data.requestId);
            TryRead(() => Res.LoanId                   = Data.loanId);
            TryRead(() => Res.OrderNumber              = Data.orderNumber);
            TryRead(() => Res.ShippingMark             = Data.shippingMark);
            TryRead(() => Res.TotalOrderAmount         = Data.totalOrderAmount);
            TryRead(() => Res.DeviationQuantityAllowed = Data.deviationQuantityAllowed);
            TryRead(() => Res.OrderAddtlDetails        = Data.orderAddtlDetails);
            TryRead(() => Res.ShippingTerms            = Data.shippingTerms);
            Res.ShippingDate = TryReadDate(() => Data.shippingDate);
            TryRead(() => Res.LoadingPort       = Data.loadingPort);
            TryRead(() => Res.DestinationPort   = Data.destinationPort);
            TryRead(() => Res.TACoveredAmount   = Data.taCoveredAmount);
            TryRead(() => Res.OrderDeposit      = Data.orderDeposit);
            TryRead(() => Res.OrderBalance      = Data.orderBalance);
            TryRead(() => Res.OrderCurrency     = Data.orderCurrency);
            TryRead(() => Res.CommercialInvoice = Data.attachmentCommercialInvoice);
            TryRead(() => Res.BillOfLading      = Data.attachmentBillOfLading);
            TryRead(() => Res.PackingList       = Data.attachmentPackingList);
            TryRead(() => Res.Other             = Data.attachmentOther);

            TryRead(() => Res.Seller.BusinessName      = Data.sellerBusinessName);
            TryRead(() => Res.Seller.AliMemberId       = Data.sellerAliMemberId);
            TryRead(() => Res.Seller.Street1           = Data.sellerStreet1);
            TryRead(() => Res.Seller.Street2           = Data.sellerStreet2);
            TryRead(() => Res.Seller.City              = Data.sellerCity);
            TryRead(() => Res.Seller.State             = Data.sellerState);
            TryRead(() => Res.Seller.Country           = Data.sellerCountry);
            TryRead(() => Res.Seller.PostalCode        = Data.sellerPostalCode);
            TryRead(() => Res.Seller.AuthRepFname      = Data.sellerAuthRepFname);
            TryRead(() => Res.Seller.AuthRepLname      = Data.sellerAuthRepLname);
            TryRead(() => Res.Seller.Phone             = Data.sellerPhone);
            TryRead(() => Res.Seller.Fax               = Data.sellerFax);
            TryRead(() => Res.Seller.Email             = Data.sellerEmail);
            TryRead(() => Res.Seller.GoldSupplierFlag  = Data.goldSupplierFlag);
            TryRead(() => Res.Seller.TenureWithAlibaba = Data.supplierTenureWithAlibaba);
            Res.Seller.BusinessStartDate               = TryReadDate(() => Data.supplierBusinessStartDate);
            TryRead(() => Res.Seller.Size              = Data.supplierSize);
            TryRead(() => Res.Seller.suspiciousReportCountCounterfeitProduct          = Data.suspiciousReportCountCounterfeitProduct);
            TryRead(() => Res.Seller.suspiciousReportCountRestrictedProhibitedProduct = Data.suspiciousReportCountRestrictedProhibitedProduct);
            TryRead(() => Res.Seller.suspiciousReportCountSuspiciousMember            = Data.suspiciousReportCountSuspiciousMember);
            TryRead(() => Res.Seller.ResponseRate         = Data.supplierResponseRate);
            Res.Seller.GoldMemberStartDate                = TryReadDate(() => Data.supplierGoldMemberStartDate);
            TryRead(() => Res.Seller.QuotationPerformance = Data.quotationPerformance);

            TryRead(() => Res.Seller.Bank.BeneficiaryBank  = Data.beneficiaryBank);
            TryRead(() => Res.Seller.Bank.StreetAddr1      = Data.bankStreetAddr1);
            TryRead(() => Res.Seller.Bank.StreetAddr2      = Data.bankStreetAddr2);
            TryRead(() => Res.Seller.Bank.City             = Data.bankCity);
            TryRead(() => Res.Seller.Bank.State            = Data.bankState);
            TryRead(() => Res.Seller.Bank.Country          = Data.bankCountry);
            TryRead(() => Res.Seller.Bank.PostalCode       = Data.bankPostalCode);
            TryRead(() => Res.Seller.Bank.SwiftCode        = Data.swiftcode);
            TryRead(() => Res.Seller.Bank.AccountNumber    = Data.bankAccountNumber);
            TryRead(() => Res.Seller.Bank.WireInstructions = Data.otherWireInstructions);

            if (Data.orderItems != null)
            {
                for (int i = 0; i < Data.orderItems.Length; i++)
                {
                    var item = new AlibabaContractItem();
                    TryRead(() => item.OrderProdNumber    = Data.orderItems[i].orderProdNumber);
                    TryRead(() => item.ProductName        = Data.orderItems[i].productName);
                    TryRead(() => item.ProductSpecs       = Data.orderItems[i].productSpecs);
                    TryRead(() => item.ProductQuantity    = Data.orderItems[i].productQuantity);
                    TryRead(() => item.ProductUnit        = Data.orderItems[i].productUnit);
                    TryRead(() => item.ProductUnitPrice   = Data.orderItems[i].productUnitPrice);
                    TryRead(() => item.ProductTotalAmount = Data.orderItems[i].productTotalAmount);

                    Res.Items.Add(item);
                }
            }


            TryRead(() => Res.Buyer.AliId                       = Data.aliMemberId);
            TryRead(() => Res.Buyer.BussinessName               = Data.buyerBusinessName);
            TryRead(() => Res.Buyer.street1                     = Data.buyerStreet1);
            TryRead(() => Res.Buyer.street2                     = Data.buyerStreet2);
            TryRead(() => Res.Buyer.City                        = Data.buyerCity);
            TryRead(() => Res.Buyer.State                       = Data.buyerState);
            TryRead(() => Res.Buyer.Zip                         = Data.buyerZip);
            TryRead(() => Res.Buyer.Country                     = Data.buyerCountry);
            TryRead(() => Res.Buyer.AuthRepFname                = Data.buyerAuthRepFname);
            TryRead(() => Res.Buyer.AuthRepLname                = Data.buyerAuthRepLname);
            TryRead(() => Res.Buyer.Phone                       = Data.buyerPhone);
            TryRead(() => Res.Buyer.Fax                         = Data.buyerFax);
            TryRead(() => Res.Buyer.Email                       = Data.buyerEmail);
            TryRead(() => Res.Buyer.OrderRequestCountLastYear   = Data.buyerOrderRequestCountLastYear);
            TryRead(() => Res.Buyer.ConfirmShippingDocAndAmount = Data.buyerConfirmShippingDocAndAmount);
            TryRead(() => Res.Buyer.FinancingType               = Data.financingType);
            TryRead(() => Res.Buyer.ConfirmReleaseFunds         = Data.buyerConfirmReleaseFunds);

            return(Res);
        }