/// <summary> /// Remove item from wish list. /// </summary> /// <param name="wishListId">The wish list identifier.</param> /// <param name="productIds">The items to remove from the wish list.</param> /// <returns>Returns the updated wish list.</returns> public virtual async Task <CommerceList> RemoveItemFromWishList(long wishListId, IEnumerable <long> productIds) { if (productIds == null) { throw new ArgumentNullException(nameof(productIds)); } ManagerFactory managerFactory = Utilities.GetManagerFactory(this.EcommerceContext); ICommerceListManager commerceListManager = managerFactory.GetManager <ICommerceListManager>(); ICustomerManager customerManager = managerFactory.GetManager <ICustomerManager>(); Customer customer = await customerManager.Read(string.Empty); Collection <CommerceListLine> wishListLines = new Collection <CommerceListLine>(); foreach (long productId in productIds) { CommerceListLine wishListLine = new CommerceListLine() { CommerceListId = wishListId, CustomerId = customer.AccountNumber, ProductId = productId }; wishListLines.Add(wishListLine); } CommerceList updatedWishList = await commerceListManager.RemoveLines(wishListId, wishListLines); return(updatedWishList); }
/// <summary> /// Update a commerce list line. /// </summary> /// <param name="commerceListLine">The commerce list line object.</param> /// <param name="filterAccountNumber"> /// The filter account number. It is used to check the operation privilege and filter the result content. /// Set the value to null to skip filtering. /// </param> /// <returns>The result commerce list.</returns> public CommerceList UpdateCommerceListLine(CommerceListLine commerceListLine, string filterAccountNumber) { ThrowIf.Null(commerceListLine, "commerceListLine"); string xmlInput = CommerceListLineToXml(commerceListLine); var data = this.InvokeMethod(UpdateWishListLineMethodName, xmlInput, filterAccountNumber); return(TransactionServiceClient.ParseCommerceList(data[0].ToString())); }
/// <summary> /// Parse commerce list xml data into object. /// </summary> /// <param name="xmlCommerceList">Xml format of a commerce list.</param> /// <returns>Returns the commerce list object.</returns> private static CommerceList ParseCommerceList(XElement xmlCommerceList) { ThrowIf.Null(xmlCommerceList, "xmlCommerceList"); var clist = new CommerceList(); clist.Id = Convert.ToInt64(TransactionServiceClient.GetAttributeValue(xmlCommerceList, "RecId")); clist.CustomerId = TransactionServiceClient.GetAttributeValue(xmlCommerceList, "CustomerId"); clist.CustomerName = TransactionServiceClient.GetAttributeValue(xmlCommerceList, "CustomerName"); clist.Name = TransactionServiceClient.GetAttributeValue(xmlCommerceList, "Name"); clist.IsFavorite = bool.Parse(TransactionServiceClient.GetAttributeValue(xmlCommerceList, "IsFavorite")); clist.IsRecurring = bool.Parse(TransactionServiceClient.GetAttributeValue(xmlCommerceList, "IsRecurring")); clist.IsPrivate = bool.Parse(TransactionServiceClient.GetAttributeValue(xmlCommerceList, "IsPrivate")); clist.IsCollaborative = bool.Parse(TransactionServiceClient.GetAttributeValue(xmlCommerceList, "IsCollaborative")); clist.CreatedDateTime = TransactionServiceClient.ParseDateTimeOffset(xmlCommerceList, "CreatedDateTime"); clist.DueDateTime = TransactionServiceClient.ParseDateTimeOffset(xmlCommerceList, "DueDateTime"); var lineElem = xmlCommerceList.Element("WishListLines"); IEnumerable <CommerceListLine> clistLines = Enumerable.Empty <CommerceListLine>(); if (lineElem != null) { clistLines = lineElem.Elements("RetailWishListLineTable").Select <XElement, CommerceListLine>( (wLL) => { CommerceListLine commerceListLine = TransactionServiceClient.ParseCommerceListLine(wLL); return(commerceListLine); }); clist.CommerceListLines = clistLines.ToList(); } var contributorElem = xmlCommerceList.Element("WishListContributors"); if (contributorElem != null) { var contributors = TransactionServiceClient.ParseCommerceListContributors(contributorElem.ToString()); clist.CommerceListContributors = contributors.ToList(); } var invitationsElem = xmlCommerceList.Element("WishListInvitations"); if (invitationsElem != null) { var invitations = TransactionServiceClient.ParseCommerceListInvitations(invitationsElem.ToString()); clist.CommerceListInvitations = invitations.ToList(); } return(clist); }
/// <summary> /// Parse commerce list line xml data into object. /// </summary> /// <param name="xmlCommerceListLine">Xml format of a commerce list line.</param> /// <returns>Returns the commerce list line object.</returns> private static CommerceListLine ParseCommerceListLine(XElement xmlCommerceListLine) { var clistLine = new CommerceListLine(); clistLine.LineId = Convert.ToInt64(TransactionServiceClient.GetAttributeValue(xmlCommerceListLine, "RecId")); clistLine.CommerceListId = Convert.ToInt64(TransactionServiceClient.GetAttributeValue(xmlCommerceListLine, "WishListId")); clistLine.CustomerId = TransactionServiceClient.GetAttributeValue(xmlCommerceListLine, "CustomerId"); clistLine.CustomerName = TransactionServiceClient.GetAttributeValue(xmlCommerceListLine, "CustomerName"); clistLine.UnitOfMeasure = TransactionServiceClient.GetAttributeValue(xmlCommerceListLine, "UnitOfMeasure"); clistLine.ProductId = long.Parse(TransactionServiceClient.GetAttributeValue(xmlCommerceListLine, "ProductId")); clistLine.Quantity = decimal.Parse(TransactionServiceClient.GetAttributeValue(xmlCommerceListLine, "Quantity")); clistLine.IsFavorite = bool.Parse(TransactionServiceClient.GetAttributeValue(xmlCommerceListLine, "IsFavorite")); clistLine.IsRecurring = bool.Parse(TransactionServiceClient.GetAttributeValue(xmlCommerceListLine, "IsRecurring")); clistLine.IsPrivate = bool.Parse(TransactionServiceClient.GetAttributeValue(xmlCommerceListLine, "IsPrivate")); clistLine.CreatedDateTime = TransactionServiceClient.ParseDateTimeOffset(xmlCommerceListLine, "CreatedDateTime"); return(clistLine); }
/// <summary> /// Serialize the commerce list line to xml format. /// </summary> /// <param name="commerceListLine">The commerce list line object.</param> /// <returns>The commerce list line in xml format.</returns> private static string CommerceListLineToXml(CommerceListLine commerceListLine) { ThrowIf.Null(commerceListLine, "commerceListLine"); StringBuilder strOutput = new StringBuilder(); strOutput.Append("<RetailWishListLineTable"); strOutput.Append(" RecId = \"" + commerceListLine.LineId + "\""); strOutput.Append(" WishListId = \"" + commerceListLine.CommerceListId + "\""); strOutput.Append(" CustomerId=\"" + commerceListLine.CustomerId + "\""); strOutput.Append(" ProductId=\"" + commerceListLine.ProductId + "\""); strOutput.Append(" Quantity=\"" + commerceListLine.Quantity + "\""); strOutput.Append(" UnitOfMeasure=\"" + commerceListLine.UnitOfMeasure + "\""); strOutput.Append(" IsFavorite=\"" + commerceListLine.IsFavorite + "\""); strOutput.Append(" IsRecurring=\"" + commerceListLine.IsRecurring + "\""); strOutput.Append(" IsPrivate=\"" + commerceListLine.IsPrivate + "\""); strOutput.Append(">"); strOutput.Append("</RetailWishListLineTable>"); return(strOutput.ToString()); }