private static PaymentCollection PopulateOrderPayments(MobilePghOrderRequestViewModel request, decimal amount) { if (request == null) { return(null); } var payment = OrderProvider.GetBasePayment("CreditCard"); payment.Amount = amount; return(new PaymentCollection { payment }); }
private static HandlingInfo PopulateOrderHandlingInfo(MobilePghOrderRequestViewModel request) { return(new HandlingInfo_V01 { PickupName = request.Data.ShippingInfo.Recipient, IncludeInvoice = (InvoiceHandlingType) Enum.Parse(typeof(InvoiceHandlingType), request.Data.PackWithInvoice), //TODO: Confirm ShippingInstructions = string.IsNullOrEmpty(request.Data.ShippingInstruction) ? string.Format("{0},{1}", request.Data.ShippingInfo.Recipient, string.IsNullOrEmpty(request.Data.ShippingInfo.Phone) ? "11111111111" : request.Data.ShippingInfo.Phone) : request.Data.ShippingInstruction }); }
private static ShippingInfo_V01 PopulateOrderShipment(MobilePghOrderRequestViewModel request) { if (request == null) { return(null); } var shippingInfo = request.Data.ShippingInfo; return(new ShippingInfo_V01 { Address = ConvertAddressViewModelToAddress(shippingInfo.Address), WarehouseCode = request.Data.WarehouseCode, ShippingMethodID = !string.IsNullOrEmpty(shippingInfo.ShippingMethodID) && shippingInfo.ShippingMethodID != "0" ? shippingInfo.ShippingMethodID : HLConfigManager.Configurations.ShoppingCartConfiguration.DefaultFreightCode, Recipient = shippingInfo.Recipient, Phone = shippingInfo.Phone == string.Empty ? "11111111111" : shippingInfo.Phone }); }
public MobilePghResponseWrapper InsertPghOrder(MobilePghOrderRequestViewModel request) { try { var response = new MobilePghResponseWrapper(); if (WebAPI.Provider.SSO.SSOProvider.UseSSO(request.Data.Locale, Getclient())) { if (WebAPI.Provider.SSO.SSOProvider.IsValidUser(request.Data.DistributorId)) { string distributor = WebAPI.Provider.SSO.SSOProvider.CurrentDistributor(GetToken()); if (!string.IsNullOrEmpty(distributor)) { request.Data.DistributorId = distributor; } else { return(response); } } } List <ValidationErrorViewModel> Errors = null; var orderResponse = MobilePghProvider.InsertPghOrder(request, out Errors); response.Data = orderResponse; response.ValidationErrors = Errors; return(response); } catch (Exception ex) { throw new Exception(ex.Message); } }
public static MobilePghOrderResponseViewModel InsertPghOrder(MobilePghOrderRequestViewModel request, out List <ValidationErrorViewModel> validationErrors) { Thread.CurrentThread.Name = request.Client.Name == "ikiosk" ? "iKiosk" : request.Client.Name; var memberId = string.Empty; validationErrors = null; var response = new MobilePghOrderResponseViewModel(); if (null == request || null == request.Data || null == request.InvoiceData) { return(response); } try { var order = new Order_V01(); var shoppingCart = new MyHLShoppingCart(); var countryCode = request.Data.Locale.Substring(3, 2); memberId = request.Data.DistributorId; var totals = ConvertToOrderTotals(request.InvoiceData, countryCode); if (totals == null) { validationErrors.Add(new ValidationErrorViewModel { Code = 0, Reason = "Error on Totals is null value." }); return(response); } GenerateObject(request, out order, out shoppingCart, totals); var btOrder = OrderProvider.CreateOrder(order, shoppingCart, countryCode); if (null != btOrder && request.Client.Name == "ikiosk") { ((ServiceProvider.SubmitOrderBTSvc.Order)btOrder).InputMethod = "IK"; } var amount = GetAmountdue(request.InvoiceData); var orderNumber = GetOrderNumber(amount, shoppingCart.CountryCode, shoppingCart.DistributorID); var holder = OrderProvider.GetSerializedOrderHolder(btOrder, order, shoppingCart, new Guid()); var orderData = OrderSerializer.SerializeOrder(holder); var gatewayName = HLConfigManager.Configurations.PaymentsConfiguration.GatewayName; var netbankingName = "TechProcessPaymentGateway"; var paymentTypeDefault = "CreditCard"; var selectedGateway = request.Data.PaymentInfo.IssuerAssociation.PaymentType.ToUpper() == paymentTypeDefault.ToUpper() ? gatewayName : netbankingName; var paymentId = OrderProvider.InsertPaymentGatewayRecord(orderNumber, memberId, selectedGateway, orderData, request.Data.Locale); if (paymentId > 0) { response.OrderNumber = orderNumber; response.Status = true; return(response); } } catch (Exception ex) { validationErrors = new List <ValidationErrorViewModel> { new ValidationErrorViewModel { Code = 0, Reason = ex.Message } }; } response.OrderNumber = string.Empty; response.Status = false; return(response); }
private static void GenerateObject(MobilePghOrderRequestViewModel request, out Order_V01 Order, out MyHLShoppingCart ShoppingCart, OrderTotals Totals) { var orderTotalsV01 = Totals as OrderTotals_V01; var orderTotalsV02 = Totals as OrderTotals_V02; decimal amount = 0; if (request.Data.OrderItems.Count > 0) { amount = request.Data.Locale.Substring(3, 2) == "CN" ? orderTotalsV02.AmountDue : orderTotalsV01.AmountDue; } else { amount = request.Data.Locale.Substring(3, 2) == "CN" ? orderTotalsV02.Donation : orderTotalsV01.AmountDue; } #region Fill Order var order = new Order_V01 { DistributorID = request.Data.DistributorId, CountryOfProcessing = request.Data.Locale.Substring(3, 2), OrderCategory = string.IsNullOrEmpty(request.Data.OrderType) ? OrderCategoryType.RSO : (OrderCategoryType) Enum.Parse(typeof(OrderCategoryType), request.Data.OrderType), OrderMonth = GetOrderMonth(request.Data.OrderYear, request.Data.OrderMonth), Pricing = Totals, OrderItems = PopulateOrderItems(request.Data.OrderItems), ReceivedDate = DateUtils.GetCurrentLocalTime(request.Data.Locale.Substring(3, 2)), Shipment = PopulateOrderShipment(request), Payments = PopulateOrderPayments(request, amount), Handling = PopulateOrderHandlingInfo(request), DiscountPercentage = request.InvoiceData.Discount }; #endregion #region ShoppingCart var shoppingCart = new MyHLShoppingCart { Locale = request.Data.Locale, CountryCode = request.Data.Locale.Substring(3, 2), DistributorID = request.Data.DistributorId, Totals = Totals, ShoppingCartID = 0, OrderCategory = ServiceProvider.CatalogSvc.OrderCategoryType.RSO, EmailAddress = request.Data.Confirmation.Email, EmailValues = new HLShoppingCartEmailValues(), DeliveryInfo = new ShippingInfo { WarehouseCode = request.Data.WarehouseCode, AdditionalInformation = string.Empty, Option = !string.IsNullOrEmpty(request.Data.DeliveryType) && request.Data.DeliveryType.ToUpper() == "PICKUP" ? MyHerbalife3.Ordering.ServiceProvider.ShippingSvc.DeliveryOptionType.Pickup : MyHerbalife3.Ordering.ServiceProvider.ShippingSvc.DeliveryOptionType.Shipping, Address = new MyHerbalife3.Ordering.ServiceProvider.ShippingSvc.ShippingAddress_V01 { Recipient = (request.Data.ShippingInfo as ShippingInfo_V01).Recipient, Address = ObjectMappingHelper.Instance.GetToShipping(request.Data.ShippingInfo.Address as Address_V01) } } }; shoppingCart.ShoppingCartItems = new List <DistributorShoppingCartItem>(); foreach (var item in request.Data.OrderItems) { shoppingCart.ShoppingCartItems.Add(new DistributorShoppingCartItem { Description = item.Description, Quantity = item.Quantity, SKU = item.Sku }); } #endregion Order = order; ShoppingCart = shoppingCart; }