Esempio n. 1
0
        public async Task <OperationResult <bool> > UpdateProductById(string id, StallEntities db)
        {
            var result = new OperationResult(false);

            //load product
            var productResult = await VendProduct.GetProductByIdAsync(id, Prefix, await StallApplication.GetAccessTokenAsync(Prefix));

            if (productResult?.Products == null)
            {
                result.Message = string.Format("无法获取商品[{0}]信息", id);
                return(result);
            }

            //set products
            var vProducts = productResult?.Products;

            foreach (var vP in vProducts)
            {
                if (vP.Id.Equals(id))
                {
                    var p = Product.ConvertFrom(vP, Id);
                    return(p.Save(db));
                }
            }

            result.Message = string.Format("无法获取商品[{0}]信息", id);
            return(result);
        }
Esempio n. 2
0
        //private static IEnumerable<Product> GetProducts(Func<Product, bool> condition, StallEntities db)
        //{
        //    return db.Products.Include(x => x.Stall).Where(x => Stall.StallStatus.Online.Equals(x.Stall.Status)).Where(condition);
        //}

        public static Product ConvertFrom(VendProduct p, int stallId)
        {
            return(new Product()
            {
                Id = p.Id,
                StallId = stallId,
                SourceId = p.SourceId,
                SourceVariantId = p.VariantSourceId,
                Handle = p.Handle,
                Type = p.Type,
                HasVariants = p.HasVariants,
                VariantParentId = string.IsNullOrEmpty(p.VariantParentId) ? null : p.VariantParentId,
                VariantOptionOneName = p.VariantOptionOneName,
                VariantOptionOneValue = p.VariantOptionOneValue,
                VariantOptionTwoName = p.VariantOptionTwoName,
                VariantOptionTwoValue = p.VariantOptionTwoValue,
                VariantOptionThreeName = p.VariantOptionThreeName,
                VariantOptionThreeValue = p.VariantOptionThreeValue,
                Active = p.Active,
                Name = p.Name,
                BaseName = p.BaseName,
                Description = p.Description,
                Image = p.Image,
                ImageLarge = p.ImageLarge,
                Sku = p.Sku,
                Tags = p.Tags,
                BrandId = p.BrandId,
                BrandName = p.BrandName,
                SupplierName = p.SupplierName,
                SupplierCode = p.SupplierCode,
                SupplierPrice = p.SupplyPrice,
                AccountCodePurchase = p.AccountCodePurchase,
                AccountCodeSales = p.AccountCodeSales,
                TrackInventory = p.TrackInventory,
                Stock = (p.TrackInventory && p.Inventory.Count > 0) ? Convert.ToInt32(p.Inventory[0].Count) : 0,
                Price = p.Price,
                Tax = p.Tax,
                TaxId = p.TaxId,
                TaxRate = p.TaxRate,
                TaxName = p.TaxName,
                DisplayRetailPriceTaxInclusive = p.DisplayRetailPriceTaxInclusive,
                UpdatedAt = p.UpdatedAt,
                DeletedAt = p.DeletedAt
            });
        }
Esempio n. 3
0
        private async Task <OperationResult <bool> > LoadProduct()
        {
            var result = new OperationResult(false);

            //load stall
            var productResult = await VendProduct.GetProductsAsync(Prefix, await StallApplication.GetAccessTokenAsync(Prefix));

            if (productResult?.Products == null)
            {
                result.Message = "无法获取VEND商品信息";
                return(result);
            }

            //set products
            Products.Clear();

            //var products = productResult?.Products.OrderBy(x => x.VariantParentId).ToList();
            var vProducts = productResult?.Products;

            foreach (var vP in vProducts)
            {
                var p = Product.ConvertFrom(vP, Id);
                if (p.Handle.ToLower().Equals("vend-discount"))
                {
                    DiscountProductId = p.Id;
                    p.Active          = false;
                }
                else if (p.Handle.ToLower().Equals("jdl-delivery"))
                {
                    DeliveryProductId = p.Id;
                    p.Active          = false;
                }
                Products.Add(p);
            }

            //set data
            result.Succeeded = true;
            return(result);
        }