/// <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);
            }
Beispiel #2
0
            /// <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()));
            }
Beispiel #3
0
            /// <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);
            }
Beispiel #4
0
            /// <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);
            }
Beispiel #5
0
            /// <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());
            }