private void FillObject(ICollection <UM_AttributeField> target, AttributeFieldsModel source) { if (source == null || source.List == null) { return; } var newAttributes = source.List.ToDictionary(n => n.ID); var oldAttributes = target.ToDictionary(n => (Guid?)n.ID); var deleteAttributes = (from n in target where !newAttributes.ContainsKey(n.ID) select n).ToList(); var insertAttributes = (from n in source.List where !oldAttributes.ContainsKey(n.ID) select n).ToList(); var updateAttributes = (from n in source.List where oldAttributes.ContainsKey(n.ID) select n).ToList(); var converter = new AttributeFieldModelEntityConverter(Session); foreach (var item in deleteAttributes) { item.DateDeleted = DateTime.Now; } foreach (var item in insertAttributes) { var entity = converter.Convert(item); target.Add(entity); } foreach (var item in updateAttributes) { var entity = oldAttributes[item.ID]; converter.FillObject(entity, item); } }
private void FillObject(AttributeFieldsModel target, IEnumerable <UM_AttributeField> source) { if (source == null) { return; } var converter = new AttributeFieldEntityModelConverter(Session); target.List = new List <AttributeFieldModel>(); foreach (var item in source) { if (item.DateDeleted != null) { continue; } var model = converter.Convert(item); target.List.Add(model); } }