/// <summary>
        /// Processes the arguments.
        /// </summary>
        /// <param name="args">The pipeline arguments.</param>
        public override void Process(ServicePipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            var request = (UpdateWishListLinesRequest)args.Request;
            var result  = (UpdateWishListLinesResult)args.Result;

            var updatedLines = new List <WishListLine>();

            using (var client = this.GetClient())
            {
                var wishlistId = new Guid(request.WishList.ExternalId);

                foreach (WishListLine line in request.Lines)
                {
                    if (client.UpdateQuantity(wishlistId, line.Product.ProductId, int.Parse(line.Quantity.ToString())) != null)
                    {
                        updatedLines.Add(line);
                    }
                }

                ShoppingCartModel wishlistModel = client.GetWishlist(wishlistId);

                var wishlist = new WishList
                {
                    ExternalId = request.WishList.ExternalId
                };

                wishlist.MapWishlistFromModel(wishlistModel);

                result.WishList     = wishlist;
                result.UpdatedLines = new ReadOnlyCollection <WishListLine>(updatedLines);
            }
        }
Пример #2
0
        /// <summary>
        /// Processes the arguments.
        /// </summary>
        /// <param name="args">The pipeline arguments.</param>
        public override void Process(ServicePipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            var request = (RemoveWishListLinesRequest)args.Request;
            var result  = (RemoveWishListLinesResult)args.Result;

            var removedLines = new List <WishListLine>();

            using (var client = this.GetClient())
            {
                var wishlistId = new Guid(request.WishList.ExternalId);
                foreach (string lineId in request.LineIds)
                {
                    WishListLine line = request.WishList.Lines.FirstOrDefault(p => p.ExternalId == lineId);
                    if (line != null)
                    {
                        client.RemoveProduct(wishlistId, line.Product.ProductId);
                        removedLines.Add(line);
                    }
                }

                ShoppingCartModel wishlistModel = client.GetWishlist(wishlistId);

                var wishlist = new WishList
                {
                    ExternalId = request.WishList.ExternalId
                };

                wishlist.MapWishlistFromModel(wishlistModel);

                result.WishList     = wishlist;
                result.RemovedLines = new ReadOnlyCollection <WishListLine>(removedLines);
            }
        }
Пример #3
0
        /// <summary>
        /// Performs get wishlist operation.
        /// </summary>
        /// <param name="args">The args.</param>
        public override void Process([NotNull] ServicePipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            // Gets id of castomer to load from NopCommerce instance.
            var request = (GetWishListRequest)args.Request;
            var result  = (GetWishListResult)args.Result;

            // Creates instance of WCF service client.
            using (var client = this.GetClient())
            {
                Guid   userGuid;
                string userId = request.UserId;
                if (!Guid.TryParse(userId, out userGuid))
                {
                    var idGenerator = new Md5IdGenerator();
                    userGuid = Guid.Parse(idGenerator.StringToID(userId, string.Empty).ToString());
                }

                ShoppingCartModel wishlistModel = client.GetWishlist(userGuid);
                if (wishlistModel == null)
                {
                    return;
                }

                var wishlist = new WishList
                {
                    ExternalId = request.WishListId
                };

                wishlist.MapWishlistFromModel(wishlistModel);

                result.WishList = wishlist;
            }
        }
        /// <summary>
        /// Runs the processor.
        /// </summary>
        /// <param name="args">The arguments.</param>
        public override void Process(ServicePipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            var result = (GetWishListsResult)args.Result;

            // Creates instance of WCF service client.
            using (var client = this.GetClient())
            {
                var wishlistsHeaders = new List <WishListHeader>();
                var wishlists        = new ReadOnlyCollection <WishListHeader>(wishlistsHeaders);
                result.WishLists = wishlists;

                var wishlistModels = client.GetWishlists();
                if (!wishlistModels.Any())
                {
                    return;
                }

                // Maps wishlist lines from NopCommerce wishlist model to OBEC wishlist.
                foreach (var wishlistModel in wishlistModels)
                {
                    var wishlist = new WishList();

                    wishlist.MapWishlistFromModel(wishlistModel);
                    var header = new WishListHeader();
                    header.MapWishlistHeaderFromModel(wishlistModel);
                    wishlistsHeaders.Add(header);
                }
            }
        }
Пример #5
0
        /// <summary>
        /// Performs create wishlist operation.
        /// </summary>
        /// <param name="args">The args.</param>
        public override void Process([NotNull] ServicePipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            var request = (CreateWishListRequest)args.Request;
            var result  = (CreateWishListResult)args.Result;

            using (var client = this.GetClient())
            {
                var wishlistModel = client.CreateWishlist(new Guid(request.UserId));
                if (wishlistModel == null)
                {
                    return;
                }

                var wishlist = new WishList();

                wishlist.MapWishlistFromModel(wishlistModel);

                result.WishList = wishlist;
            }
        }