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); }
//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 }); }
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); }