コード例 #1
0
        /// <summary>
        /// The get customer order by order id.
        /// </summary>
        /// <param name="orderId">
        /// The order id.
        /// </param>
        /// <returns>
        /// Customer Order Object
        /// </returns>
        public static CustomerOrder_V01 GetCustomerOrderByOrderID(string orderId)
        {
            if (string.IsNullOrEmpty(orderId))
            {
                return(null);
            }

            using (var proxy = ServiceClientProvider.GetCustomerOrderServiceProxy())
            {
                try
                {
                    var request = new GetCustomerOrderRequest_V01();
                    var filter  = new CustomerOrderById {
                        CustomerOrderId = orderId
                    };
                    request.Filter = filter;
                    var response = proxy.GetOrders(new GetOrdersRequest(request)).GetOrdersResult as GetCustomerOrderResponse_V01;
                    if (response != null && response.Status == ServiceResponseStatusType.Success)
                    {
                        return(response.Orders.ToList().Cast <CustomerOrder_V01>().ToList().FirstOrDefault());
                    }
                }
                catch (Exception ex)
                {
                    WebUtilities.LogServiceExceptionWithContext(ex, proxy);

                    // ExceptionPolicy.HandleException(ex, ProviderPolicies.SYSTEM_EXCEPTION);
                    LoggerHelper.Error(string.Format("GetCustomerOrderByOrderID OrderID:{0} ERR:{1}", orderId, ex));
                    return(null);
                }
            }

            return(null);
        }
コード例 #2
0
        private List <TaxRate> GetTaxRatesFromCache(string locale)
        {
            var request = new GetTaxRateRequestV01 {
                Locale = locale
            };

            try
            {
                var proxy    = ServiceClientProvider.GetCustomerOrderServiceProxy();
                var response = proxy.GetTaxRate(new GetTaxRateRequest1(request)).GetTaxRateResult;
                if (null != response && response.Status == ServiceProvider.CustomerOrderSvc.ServiceResponseStatusType.Success)
                {
                    var responseV01 = response as GetTaxRateResponse_V01;
                    if (null != responseV01 && responseV01.TaxRates.Any())
                    {
                        return(responseV01.TaxRates);
                    }
                }
                LoggerHelper.Error("Invoice Customer pricing GetTaxRatesFromTableStorage return null");
                return(new List <TaxRate>());
            }
            catch (Exception ex)
            {
                LoggerHelper.Error(
                    string.Format(
                        "OrderService - InvoiceProvider: An error occured while Calling GetTaxDataForDwsFromVertex service method {0}",
                        ex.Message));
            }
            return(new List <TaxRate>());
        }
コード例 #3
0
        /// <summary>
        /// The get available discounts.
        /// </summary>
        /// <param name="distributorId">
        /// The distributor id.
        /// </param>
        /// <returns>
        /// List of customer discounts
        /// </returns>
        public static List <CustomerDiscountDefinition> GetAvailableDiscounts(string distributorId)
        {
            if (string.IsNullOrEmpty(distributorId))
            {
                return(null);
            }

            using (var proxy = ServiceClientProvider.GetCustomerOrderServiceProxy())
            {
                try
                {
                    var request = new GetCustomerDiscountsByDistributor {
                        DistributorID = distributorId
                    };
                    var response = proxy.GetCustomerDiscounts(new GetCustomerDiscountsRequest1(request)).GetCustomerDiscountsResult as GetCustomerDiscountsResponse_V01;
                    if (response.Status == ServiceResponseStatusType.Success)
                    {
                        return(response.Discounts.ToList());
                    }
                }
                catch (Exception ex)
                {
                    WebUtilities.LogServiceExceptionWithContext(ex, proxy);

                    // ExceptionPolicy.HandleException(ex, ProviderPolicies.SYSTEM_EXCEPTION);
                    LoggerHelper.Error(string.Format("GetAvailableDiscounts DS:{0} ERR:{1}", distributorId, ex));
                    return(null);
                }
            }

            return(null);
        }
コード例 #4
0
        /// <summary>
        /// The save customer order.
        /// </summary>
        /// <param name="customerOrder">
        /// The customer order.
        /// </param>
        /// <returns>
        /// The save customer order.
        /// </returns>
        public static bool SaveCustomerOrder(CustomerOrder_V01 customerOrder)
        {
            if (customerOrder == null)
            {
                return(false);
            }

            using (var proxy = ServiceClientProvider.GetCustomerOrderServiceProxy())
            {
                try
                {
                    var request = new SaveCustomerOrderRequest_V01 {
                        Order = customerOrder
                    };
                    var response = proxy.SaveOrder(new SaveOrderRequest(request)).SaveOrderResult as SaveCustomerOrderResponse_V01;
                    if (response.Status == ServiceResponseStatusType.Success)
                    {
                        return(true);
                    }
                }
                catch (Exception ex)
                {
                    WebUtilities.LogServiceExceptionWithContext(ex, proxy);

                    // ExceptionPolicy.HandleException(ex, ProviderPolicies.SYSTEM_EXCEPTION);
                    LoggerHelper.Error(string.Format("SaveCustomerOrder OrderID:{0} ERR:{1}", customerOrder.OrderID, ex));
                    return(false);
                }
            }
            return(false);
        }
コード例 #5
0
        /// <summary>
        /// The update customer order tags.
        /// </summary>
        /// <param name="customerOrderID">
        /// The customer order id.
        /// </param>
        /// <param name="orderTag">
        /// The order tag.
        /// </param>
        /// <returns>
        /// The update customer order tags.
        /// </returns>
        public static bool UpdateCustomerOrderTags(string customerOrderID, CustomerOrderStatusTag orderTag)
        {
            if (string.IsNullOrEmpty(customerOrderID))
            {
                return(false);
            }

            using (var proxy = ServiceClientProvider.GetCustomerOrderServiceProxy())
            {
                try
                {
                    var request = new SavePartialCustomerOrderRequest
                    {
                        OrderId = customerOrderID,
                        Updates =
                            new[]
                        {
                            new CustomerOrderPropertyValue
                            {
                                Property = CustomerOrderProperty.CustomerOrderStatusTag,
                                Value    =
                                    (int)
                                    Enum.Parse(
                                        typeof(CustomerOrderStatusTag),
                                        Enum.GetName(typeof(CustomerOrderStatusTag), orderTag))
                            }
                        }.ToList()
                    };

                    var response = proxy.SaveOrder(new SaveOrderRequest(request)).SaveOrderResult as SaveCustomerOrderResponse_V01;
                    if (response.Status == ServiceResponseStatusType.Success)
                    {
                        return(true);
                    }
                }
                catch (Exception ex)
                {
                    WebUtilities.LogServiceExceptionWithContext(ex, proxy);

                    // ExceptionPolicy.HandleException(ex, ProviderPolicies.SYSTEM_EXCEPTION);
                    LoggerHelper.Error(string.Format("UpdateCustomerOrderTags OrderID:{0} ERR:{1}", customerOrderID, ex));
                    return(false);
                }
            }

            return(false);
        }
コード例 #6
0
        /// <summary>
        /// The save discount.
        /// </summary>
        /// <param name="coupon">
        /// The coupon.
        /// </param>
        /// <param name="distributorId">
        /// The distributor id.
        /// </param>
        /// <returns>
        /// The save discount.
        /// </returns>
        /// <exception cref="ArgumentException">
        /// </exception>
        public static bool SaveDiscount(CustomerDiscountDefinition coupon, string distributorId)
        {
            if (coupon == null)
            {
                return(false);
            }

            using (var proxy = ServiceClientProvider.GetCustomerOrderServiceProxy())
            {
                try
                {
                    var request = new SaveCustomerDiscountRequest_V01
                    {
                        Discount      = coupon,
                        DistributorID = distributorId
                    };
                    var response = proxy.SaveCustomerDiscount(new SaveCustomerDiscountRequest1(request));
                    if (response.SaveCustomerDiscountResult.Status == ServiceResponseStatusType.Success)
                    {
                        return(true);
                    }

                    if (response.SaveCustomerDiscountResult.Status.ToString() == "Failure, ClientFault")
                    {
                        foreach (var parameterError in response.SaveCustomerDiscountResult.ParameterErrorList)
                        {
                            if (parameterError.Name.Equals("Discount Code"))
                            {
                                throw new ArgumentException("Duplicate coupon code");
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    if (ex.GetType().Equals(typeof(ArgumentException)))
                    {
                        throw;
                    }
                    LoggerHelper.Error(string.Format("SaveDiscount DS ID:{0} ERR:{1}", distributorId, ex));
                    return(false);
                }
            }

            return(false);
        }
コード例 #7
0
        /// <summary>
        /// The update customer order status.
        /// </summary>
        /// <param name="customerOrderID">
        /// The customer order id.
        /// </param>
        /// <param name="previousStatus">
        /// The previous status.
        /// </param>
        /// <param name="newStatus">
        /// The new status.
        /// </param>
        /// <returns>
        /// The update customer order status.
        /// </returns>
        public static bool UpdateCustomerOrderStatus(
            string customerOrderID, CustomerOrderStatusType previousStatus, CustomerOrderStatusType newStatus)
        {
            if (string.IsNullOrEmpty(customerOrderID))
            {
                return(false);
            }

            using (var proxy = ServiceClientProvider.GetCustomerOrderServiceProxy())
            {
                try
                {
                    var request = new SaveCustomerOrderStatusRequest_V01
                    {
                        OrderId    = customerOrderID,
                        FromStatus = previousStatus,
                        ToStatus   = newStatus
                    };

                    var response = proxy.SaveOrder(new SaveOrderRequest(request)).SaveOrderResult as SaveCustomerOrderStatusResponse_V01;
                    if (response.Status == ServiceResponseStatusType.Success)
                    {
                        return(true);
                    }
                }
                catch (Exception ex)
                {
                    WebUtilities.LogServiceExceptionWithContext(ex, proxy);

                    // ExceptionPolicy.HandleException(ex, ProviderPolicies.SYSTEM_EXCEPTION);
                    LoggerHelper.Error(string.Format("UpdateCustomerOrderStatus OrderID:{0} ERR:{1}", customerOrderID, ex));
                    return(false);
                }
            }

            return(false);
        }