/// <summary> /// This method adds the purchased reward products to the customer extended group for this rewards program. /// </summary> protected void AddProductsToPurchasedExtendedGroup(IEnumerable <Product> rewardProducts) { var apiRequests = new List <ApiRequest>(); foreach (var product in rewardProducts) { // Temporarily reset the quantity to one to ensure subtotal for the product is correct for the customer extended table var originalQuantity = product.Quantity; product.Quantity = 1; var customerExtendedRequest = new CreateCustomerExtendedRequest(); if (product.ApplyDiscountType.Equals(DiscountType.NewProductsLaunchReward)) { customerExtendedRequest = new CreateCustomerExtendedRequest { CustomerID = CustomerId, ExtendedGroupID = (int)CustomerExtendedGroup.NewProductsLaunchPurchase, Field1 = product.ItemCode, Field2 = DateTime.Now.ToString(CultureInfo.InvariantCulture), Field3 = product.Subtotal.ToString("c") }; } else if (product.ApplyDiscountType.Equals(DiscountType.ProductCredit)) { customerExtendedRequest = new CreateCustomerExtendedRequest { CustomerID = CustomerId, ExtendedGroupID = (int)CustomerExtendedGroup.ProductCredit, Field1 = product.ItemCode, Field2 = DateTime.Now.ToString(CultureInfo.InvariantCulture), Field3 = product.Subtotal.ToString("c") }; } product.Quantity = originalQuantity; apiRequests.Add(customerExtendedRequest); } Api.ProcessTransaction(new TransactionalRequest { TransactionRequests = apiRequests.ToArray() }); }
public static void ArchiveEb(int customerID, int duration, int ownerID) { var createCustomerExRequest = new CreateCustomerExtendedRequest { CustomerID = ownerID, ExtendedGroupID = (int)CustomerExtendedGroup.EBPhaseReminderArchive, Field1 = DateTime.Now.ToString(), Field2 = customerID.ToString(), //customerID Field3 = duration.ToString(), //duration }; var api = Exigo.WebService(); api.CreateCustomerExtended(createCustomerExRequest); }
/// <summary> /// This method adds the purchased reward products to the customer extended group for this rewards program. /// </summary> protected void AddProductsToPurchasedExtendedGroup(IEnumerable <Product> rewardProducts) { List <ApiRequest> apiRequests = new List <ApiRequest>(); foreach (var product in rewardProducts) { // Temporarily reset the quantity to one to ensure subtotal for the product is correct for the customer extended table decimal originalQuantity = product.Quantity; product.Quantity = 1; var customerExtendedRequest = new CreateCustomerExtendedRequest { CustomerID = CustomerId, ExtendedGroupID = (int)CustomerExtendedGroup.RecruitingRewards, Field1 = product.ItemCode, Field2 = DateTime.Now.ToString(CultureInfo.InvariantCulture), Field3 = 1.ToString(CultureInfo.InvariantCulture), Field4 = product.Discounts[0].AppliedAmount.ToString("c") }; product.Quantity = originalQuantity; apiRequests.Add(customerExtendedRequest); } Api.ProcessTransaction(new TransactionalRequest { TransactionRequests = apiRequests.ToArray() }); }
/// <remarks/> public void CreateCustomerExtendedAsync(CreateCustomerExtendedRequest CreateCustomerExtendedRequest, object userState) { if ((this.CreateCustomerExtendedOperationCompleted == null)) { this.CreateCustomerExtendedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateCustomerExtendedOperationCompleted); } this.InvokeAsync("CreateCustomerExtended", new object[] { CreateCustomerExtendedRequest}, this.CreateCustomerExtendedOperationCompleted, userState); }
/// <remarks/> public void CreateCustomerExtendedAsync(CreateCustomerExtendedRequest CreateCustomerExtendedRequest) { this.CreateCustomerExtendedAsync(CreateCustomerExtendedRequest, null); }
EventConfirmation IEventService.CreateEvent(Common.ModelsEx.Event.EventBooking eventBooking) { var confirmation = new EventConfirmation(); TransactionalResponse result = null; try { var requests = new List <ApiRequest>(); // Need to create customer if new party customer if (eventBooking.Customer.CustomerID == 0) { // TODO: gwb:20150111 - What is the default warehouse for a party customer? var createCustomerRequest = new CreateCustomerRequest(eventBooking.Customer); requests.Add(createCustomerRequest); } else { throw new ApplicationException("Cannot call CreateEvent for an existing event. Call EditEvent instead."); } var setCustomerSiteRequest = new SetCustomerSiteRequest(eventBooking.CustomerSite); requests.Add(setCustomerSiteRequest); var hostSpecial = RewardService.GetHostSpecialReward(eventBooking.ActualStartDate); var createCustomerExtendedRequest = new CreateCustomerExtendedRequest() { CustomerID = eventBooking.Customer.CustomerID, ExtendedGroupID = (int)CustomerExtendedGroup.PartyDetails, // Party Extended Fields Field1 = eventBooking.StartDate.ToString(CultureInfo.InvariantCulture), Field2 = eventBooking.ActualStartDate.ToString(CultureInfo.InvariantCulture), Field3 = eventBooking.CloseDate.ToString(CultureInfo.InvariantCulture), Field4 = eventBooking.LockoutDate.ToString(CultureInfo.InvariantCulture), Field5 = eventBooking.CreatorCustomerID.ToString(), Field6 = eventBooking.HostCustomerID.ToString(), Field8 = hostSpecial.ItemCode, Field9 = hostSpecial.DiscountAmount.ToString(CultureInfo.InvariantCulture), Field10 = string.Empty, // Reward Not Redeemed Field11 = hostSpecial.SalesThreshold.ToString(CultureInfo.InvariantCulture), Field12 = eventBooking.PartyDate.ToString(CultureInfo.InvariantCulture), Field13 = eventBooking.PartyStartTime, Field14 = eventBooking.PartyEndTime, Field15 = eventBooking.TimeZone }; requests.Add(createCustomerExtendedRequest); result = Api.ProcessTransaction(new TransactionalRequest { TransactionRequests = requests.ToArray() }); } catch (Exception ex) { if (Status.Success.Equals(confirmation.Result.Status)) { confirmation.Result.Errors.Add("Your event was created but an unexpected error was encountered: " + ex.Message); } else { confirmation.Result.Errors.Add("There was an unexpected error while creating your event: " + ex.Message); } return(confirmation); } ProcessCreatePartyCustomerResponse(result, eventBooking, confirmation); // save new event entry into database to overcome delay try { using (var context = Exigo.Sql()) { string sqlProcedure = string.Format("InsertNewCreatedEvent {0},{1},'{2}','{3}','{4}','{5}','{6}'", confirmation.CustomerID, eventBooking.CreatorCustomerID, eventBooking.Customer.FirstName, eventBooking.ActualStartDate.ToString(CultureInfo.InvariantCulture), eventBooking.StartDate.ToString(CultureInfo.InvariantCulture), eventBooking.CloseDate.ToString(CultureInfo.InvariantCulture), eventBooking.LockoutDate.ToString(CultureInfo.InvariantCulture)); bool eventinserted = context.Query <bool>(sqlProcedure).FirstOrDefault(); } } catch (Exception EX) { } return(confirmation); }