private void SetMallProductSnapshot(MallProductSnapshot ps, ProductForMall r, Product p) { ps.EquivalentBox = r.EquivalentBox; ps.IsOrderByBox = r.IsOrderByBox; ps.MinOrderCount = r.MinOrderCount; ps.OrderDivisor = r.OrderDivisor; ps.LegacyProductId = p.LegacyProductId; ps.Name = p.Name; ps.FullName = p.FullName; ps.Specification = p.Specification; ps.ProductUnit = p.ProductUnit; ps.ShelfLife = p.ShelfLife; ps.EquivalentTon = p.EquivalentTon; ps.Barcode = p.Barcode; ps.TaxRate = p.TaxRate; ps.Order = p.Order; }
private void InitializeMallProducts(string userName, MallDay item, List <ProductForMall> productForMalls, List <Product> products) { var dbDayProducts = item.MallProductSnapshots; foreach (var dayProduct in dbDayProducts) { var productForMall = productForMalls.SingleOrDefault(x => x.Id == dayProduct.ProductForMallId); if (productForMall == null) { throw new Exception($"未能找到商超产品: {dayProduct.Name}"); } var product = products.SingleOrDefault(x => x.Id == productForMall.ProductId); if (product == null) { throw new Exception($"未能找到产品: {dayProduct.Name}"); } SetMallProductSnapshot(dayProduct, productForMall, product); dayProduct.SetModification(userName, "重新初始化"); _collectiveProductSnapshotRepository.Update(dayProduct); } var dayProductIds = dbDayProducts.Select(x => x.ProductForMallId).ToList(); var collectiveProductIds = productForMalls.Select(x => x.Id).ToList(); var toAddIds = collectiveProductIds.Except(dayProductIds).ToList(); var toAdd = productForMalls.Where(x => toAddIds.Contains(x.Id)).ToList(); foreach (var pr in toAdd) { var dayProduct = new MallProductSnapshot { ProductForMallId = pr.Id, }; dayProduct.SetCreation(userName, "初始化"); var product = products.SingleOrDefault(x => x.Id == pr.ProductId); if (product == null) { throw new Exception($"未能找到产品, 商超产品ID: {pr.Id}"); } SetMallProductSnapshot(dayProduct, pr, product); item.MallProductSnapshots.Add(dayProduct); } }