public async Task <Result> Post([FromBody] ProductAttributeTemplateParam model) { var template = new ProductAttributeTemplate { Name = model.Name }; var attributeIds = model.AttributeIds.Distinct(); if (attributeIds.Count() > 0) { var attrIds = await _productAttrRepo .Query(c => attributeIds.Contains(c.Id)) .Select(c => c.Id) .ToListAsync(); foreach (var attrId in attrIds) { template.AddAttribute(attrId); } } _productAttrTempRepo.Add(template); await _productAttrTempRepo.SaveChangesAsync(); return(Result.Ok()); }
public async Task <Result> Put(int id, [FromBody] ProductAttributeTemplateParam model) { var productTemplate = await _productAttrTempRepo .Query() .Include(x => x.ProductAttributes) .FirstOrDefaultAsync(x => x.Id == id); if (productTemplate == null) { return(Result.Fail("单据不存在")); } productTemplate.Name = model.Name; productTemplate.UpdatedOn = DateTime.Now; var attributeIds = model.AttributeIds.Distinct(); var attrIds = new List <int>(); if (attributeIds.Count() > 0) { attrIds = await _productAttrRepo .Query(c => attributeIds.Contains(c.Id)) .Select(c => c.Id) .ToListAsync(); foreach (var attrId in attrIds) { if (productTemplate.ProductAttributes.Any(x => x.AttributeId == attrId)) { continue; } productTemplate.AddAttribute(attrId); } } var deletedAttributes = productTemplate.ProductAttributes.Where(attr => !attrIds.Contains(attr.AttributeId)); foreach (var deletedAttribute in deletedAttributes) { deletedAttribute.IsDeleted = true; deletedAttribute.UpdatedOn = DateTime.Now; } _productAttrTempRepo.SaveChanges(); return(Result.Ok()); }