public void SaveRelations(ContentRelationsDto contentRelations) { if (contentRelations.Sets == null || !contentRelations.Sets.Any()) { return; } var relations = relationService.GetByParentId(contentRelations.ParentId).ToList(); var parentEntity = entityService.Get(contentRelations.ParentId, contentRelations.ParentType); foreach (var set in contentRelations.Sets) { var typeId = set.RelationTypeId; var type = relationService.GetRelationTypeById(set.RelationTypeId); var setRelations = relations.Where(r => r.RelationTypeId == typeId); foreach (var removeRelation in setRelations) { relationService.Delete(removeRelation); } foreach (var relation in set.Relations) { if (relation.State == RelationStateEnum.Deleted || relation.Readonly) { continue; } var childEntity = entityService.Get(relation.ChildId, UmbracoObjectTypesExtensions.GetUmbracoObjectType(type.ChildObjectType)); relationService.Relate(parentEntity, childEntity, type); } } }