public static int CreateCustomerLead(CreateCustomerLeadRequest Request) { CreateCustomerLeadResponse Response = new CreateCustomerLeadResponse(); ExigoApi Api = Exigo.WebService(); Response = Api.CreateCustomerLead(Request); if (ResultStatus.Success.Equals(Response.Result.Status)) { return(Response.CustomerLeadID); } throw new ApplicationException("Create CustomerLead Failed."); }
public static string GetWebAlias(int id, ExigoApi ApiContext) { try { GetCustomerSiteResponse webAlias = ApiContext.GetCustomerSite(new GetCustomerSiteRequest() { CustomerID = id }); return(webAlias.WebAlias); } catch { return(string.Empty); } }
public ExigoApi GetContext() { var context = new ExigoApi() { ApiAuthenticationValue = new ApiAuthentication() { LoginName = ApiSettings.LoginName, Password = ApiSettings.Password, Company = ApiSettings.CompanyKey }, Url = ApiSettings.WebServiceUrl }; return(context); }
public static ExigoApi GetNewWebServiceContext(ApiContextSource source, string APIKey) { try { var res = new ExigoApi { ApiAuthenticationValue = new ApiAuthentication { LoginName = GlobalSettings.ExigoApiCredentials.LoginName, Password = GlobalSettings.ExigoApiCredentials.Password, Company = GlobalSettings.ExigoApiCredentials.CompanyKey }, Url = GlobalSettings.ExigoAPISourceUrl.CurrentWebServiceUrl }; return(res); } catch { throw; } }
public StarterKit(ExigoApi api) { Api = api; }
////Not being used anymore...just here for reference //public void CreateCustomerRecruitingRewards(int customerId) //{ // var api = Exigo.WebService(); // var reward = new RecruitingRewardDiscount(); // //Set start and expiry dates. // var startDate = DateTime.Now; // reward.CompletionDate = startDate.AddDays(60); // //customerId = 1022; // const int extendedGroupId = (int)CustomerExtendedGroup.RecruitingRewards; // //Get Discount amount and check validity. // reward.RewardAmount = Convert.ToDecimal(GetRecruitingReward(customerId)); // if (reward.DiscountAmount <= 0) return; // //Check if the reward has already been added for the customer // var customerEx = Exigo.GetCustomerExtendedDetails(customerId, extendedGroupId).Where(x => Convert.ToDateTime(x.Field2) == reward.CompletionDate); // if (customerEx.Any()) return; // var response = api.CreateCustomerExtended(new CreateCustomerExtendedRequest() // { // CustomerID = customerId, // ExtendedGroupID = extendedGroupId, // Field1 = reward.ItemCode, //Item Code // Field2 = reward.CompletionDate.ToString(CultureInfo.InvariantCulture), //Completion Date // Field4 = Convert.ToString(reward.RewardAmount, CultureInfo.InvariantCulture), //RewardAmount // Field3 = 0.ToString(CultureInfo.InvariantCulture) //Redeemed // }); //} ////Also not being use at this time. //public decimal GetRecruitingReward(int customerId) //{ // var request = new GetPointAccountRequest() // { // CustomerID = customerId, // PointAccountID = PointAccounts.RecruitingRewards // }; // var rewardAmount = Exigo.GetRecruitingReward(request); // return rewardAmount; //} //public IList<RecruitingRewardDiscount> GetCustomerRecruitingRewardDiscounts(int customerId) //{ // var details = Exigo.GetCustomerExtendedDetails(customerId, (int)CustomerExtendedGroup.RecruitingRewards /* Recruiting Rewards Extended Group ID */); // var recruitingReward = (from d in details // select new RecruitingRewardDiscount() // { // CustomerExtendedDetailId = d.CustomerExtendedDetailID, // CompletionDate = DateTime.Parse(d.Field2), // ItemCode = d.Field1, // HasBeenRedeemed = (d.Field3 == "1"), // RewardAmount = Convert.ToDecimal(d.Field4) // } // ); // return recruitingReward.ToList(); //} #endregion Recruiting-Reward #region Enrollee-Reward //public void CreateCustomerEnrolleeRewards(int customerId) //{ // var api = Exigo.WebService(); // var reward = new EnrolleeRewardDiscount(); // //Set start and expiry dates. // var startDate = DateTime.Now; // reward.CompletionDate = startDate.AddDays(60); // //customerId = 1022; // const int extendedGroupId = (int)CustomerExtendedGroup.EnrolleeRewards; // //Get Discount amount and check validity. // reward.RewardAmount = Convert.ToDecimal(GetEnrolleeReward(customerId)); // if (reward.DiscountAmount <= 0) return; // //Check if the reward has already been added for the customer // var customerEx = Exigo.GetCustomerExtendedDetails(customerId, extendedGroupId).Where(x => Convert.ToDateTime(x.Field2) == reward.CompletionDate); // if (customerEx.Any()) return; // var response = api.CreateCustomerExtended(new CreateCustomerExtendedRequest() // { // CustomerID = customerId, // ExtendedGroupID = extendedGroupId, // Field1 = reward.CompletionDate.ToString(CultureInfo.InvariantCulture), //Completion Date // Field2 = Convert.ToString(reward.RewardAmount), //RewardAmount // Field3 = 0.ToString(CultureInfo.InvariantCulture) //Redeemed // }); //} //public decimal GetEnrolleeReward(int customerId) //{ // var request = new GetPointAccountRequest() // { // CustomerID = customerId, // PointAccountID = PointAccounts.EnrolleeRewards // }; // var rewardAmount = Exigo.GetEnrolleeReward(request); // return rewardAmount; //} //public IList<EnrolleeRewardDiscount> GetCustomerEnrolleeRewardDiscounts(int customerId) //{ // var details = Exigo.GetCustomerExtendedDetails(customerId, (int)CustomerExtendedGroup.EnrolleeRewards /* Recruiting Rewards Extended Group ID */); // var enrolleeReward = (from d in details // select new EnrolleeRewardDiscount() // { // CustomerExtendedDetailId = d.CustomerExtendedDetailID, // CompletionDate = DateTime.Parse(d.Field2), // ItemCode = d.Field3, // HasBeenRedeemed = (d.Field5 == "1") // } // ); // return enrolleeReward.ToList(); //} #endregion Enrollee-Reward public int CreateRewardsAutoOrder(string itemCode, int customerId, int ExtendedGroupID, int phase) { ShoppingCart.Items.Clear(); try { Api = Exigo.WebService(); CustomerExtendedDetails customerEx = Exigo.GetCustomerExtendedDetails(customerId, ExtendedGroupID).FirstOrDefault(x => x.Field3 == itemCode && x.Field1 == phase.ToString()); if (customerEx != null) { return(0); } var customer = Exigo.GetCustomer(customerId); // Start creating the API requests var details = new List <ApiRequest>(); // Create the order request, if applicable ShoppingCartItem cartItem = ShoppingCartItem.Create(); cartItem.ItemCode = itemCode; cartItem.Quantity = 1; cartItem.PriceEachOverride = 0; cartItem.PriceTypeID = PriceTypes.Wholesale; cartItem.Type = ShoppingCartItemType.Order; ShoppingCart.Items.Add(cartItem); if (string.IsNullOrEmpty(itemCode)) { _log.TraceEvent(TraceEventType.Warning, 1, "IRewardService.CreateBonusKickerAutoOrder( String, int ): Entering method and ShoppingCart.Items is {0}.", (ShoppingCart.Items == null) ? "null" : "empty"); _nlog.Warn("IRewardService.CreateBonusKickerAutoOrder( String, int ): Entering method and ShoppingCart.Items is {0}.", (ShoppingCart.Items == null) ? "null" : "empty"); } else { _log.TraceEvent(TraceEventType.Information, 1, "IRewardService.CreateBonusKickerAutoOrder( String, int ): Entering method and ShoppingCart.Items is {0}.", ShoppingCart.Items.Count); _nlog.Info("IOrderService.PlaceOrder( Shop, String ): Entering method with {0} products.", ShoppingCart.Items.Count); } // Create the autoorder request, if applicable var autoOrderRequest = new CreateOrderRequest( AutoOrderConfiguration, (int)ShipMethods.Standard, string.Empty, ShoppingCart.Items, new ShippingAddress { Address1 = string.IsNullOrEmpty(customer.MainAddress.Address1) ? customer.MailingAddress.Address1 : customer.MainAddress.Address1, Address2 = string.IsNullOrEmpty(customer.MainAddress.Address2) ? customer.MailingAddress.Address2 : customer.MainAddress.Address2, AddressType = AddressType.Mailing, City = string.IsNullOrEmpty(customer.MainAddress.City) ? customer.MailingAddress.City : customer.MainAddress.City, Country = string.IsNullOrEmpty(customer.MainAddress.Country) ? customer.MailingAddress.Country : customer.MainAddress.Country, CustomerID = customer.CustomerID, Email = customer.Email, LastName = customer.LastName, FirstName = customer.FirstName, Phone = customer.MobilePhone, State = string.IsNullOrEmpty(customer.MainAddress.State) ? customer.MailingAddress.State : customer.MainAddress.State, Zip = string.IsNullOrEmpty(customer.MainAddress.Zip) ? customer.MailingAddress.Zip : customer.MainAddress.Zip, }, shippingOverride: 0, taxOverride: 0); autoOrderRequest.TaxRateOverride = 0M; autoOrderRequest.ShippingAmountOverride = 0M; autoOrderRequest.CustomerID = customerId; autoOrderRequest.Other15 = "1"; details.Add(autoOrderRequest); // Process the transaction var transactionRequest = new TransactionalRequest { TransactionRequests = details.ToArray() }; var transactionResponse = Exigo.WebService().ProcessTransaction(transactionRequest); if (transactionResponse == null) { _log.TraceEvent(TraceEventType.Error, 1, "There was no CreateOrderResponse."); } else { _log.TraceEvent(TraceEventType.Information, 1, "ProcessTransaction.Result.TransactionKey = {0}", transactionResponse.Result.TransactionKey); _log.TraceEvent(TraceEventType.Information, 1, "ProcessTransaction.Result.Reponse = {0}", transactionResponse.Result.Status); if ((transactionResponse.Result.Errors != null) && (transactionResponse.Result.Errors.Length > 0)) { _log.TraceEvent(TraceEventType.Error, 1, "ProcessTransaction.Result.Errors.Length = {0}", transactionResponse.Result.Errors.Length); for (int i = 0; i < transactionResponse.Result.Errors.Length; i++) { _log.TraceEvent(TraceEventType.Error, 1, "ProcessTransaction.Result.Errors[{0}] = {1}", i, transactionResponse.Result.Errors[i]); } } } var newOrderId = 0; //process the response if (transactionResponse.Result.Status == ResultStatus.Success) { foreach (var orderResponse in transactionResponse.TransactionResponses.OfType <CreateOrderResponse>()) { newOrderId = orderResponse.OrderID; var request = Api.CreateCustomerExtended(new CreateCustomerExtendedRequest() { CustomerID = customer.CustomerID, ExtendedGroupID = ExtendedGroupID, Field1 = phase.ToString(), // phase # for bonus kicker or module for training Field2 = DateTime.Now.ToString(CultureInfo.InvariantCulture), Field3 = itemCode, //ItemCode Field4 = 100.ToString(), //Discount Percent Field5 = 1.ToString(CultureInfo.InvariantCulture), //Redeemed Field6 = newOrderId.ToString() // orderid }); } var updateOrder = Api.ChangeOrderStatus(new ChangeOrderStatusRequest() { OrderID = newOrderId, OrderStatus = OrderStatusType.Accepted }); } return(newOrderId); } catch (Exception ex) { return(0); } }