public void PostWork() { foreach (RegisteredItem item in items.Values) { bool completeLoss = false; int itemType = AchsenUpdateConflict.ItemTypeFromClass(item.abschnittGISBase); string name = item.abschnittGISBase.DisplayName; if (item.abschnittGISBase.ReferenzGruppe.AchsenReferenzen.Count == 0) { completeLoss = true; session.Delete(item.abschnittGISBase.ReferenzGruppe); session.Delete(item.abschnittGISBase); statistics.ReportRemoved(item.abschnittGISBase); } else { UpdateGeometryFromReferences(item.abschnittGISBase); statistics.ReportUpdated(item.abschnittGISBase); } foreach (AchsenUpdateConflict conflict in item.conflicts) { if (completeLoss) { conflict.ConflictType |= 16; } conflict.Name = name; conflict.ItemType = itemType; conflict.ItemId = item.abschnittGISBase.Id; session.Persist(conflict); } } }