private static bool DoZielGruppenUpdate (Informationen ActuallInformation, List<Guid> TargetZielgruppenSetting) { AltErlaaInfoEntities ZielGruppenAssignmentContext = new AltErlaaInfoEntities (ServiceSource); List<InformationenZuZielGruppen> OldAssignedZielGruppen = (from ZielGrp in ZielGruppenAssignmentContext.InformationenZuZielGruppen where ZielGrp.InformationenID == ActuallInformation.ID select ZielGrp).ToList (); foreach (Guid ZielGruppenID in TargetZielgruppenSetting) { int RemoveIndex = 0; bool Exists = false; foreach (InformationenZuZielGruppen Entry in OldAssignedZielGruppen) { if (Entry.ZielgruppenID == ZielGruppenID) { Exists = true; break; } RemoveIndex++; } if (Exists == true) { OldAssignedZielGruppen.RemoveAt (RemoveIndex); } else { InformationenZuZielGruppen NewEntry = new InformationenZuZielGruppen (); NewEntry.InformationenID = ActuallInformation.ID; NewEntry.ZielgruppenID = ZielGruppenID; InsertOrModifyEntity (null, NewEntry); } } foreach (InformationenZuZielGruppen DeleteableEntry in OldAssignedZielGruppen) { Guid ID = DeleteableEntry.ID; DeleteEntity ("InformationenZuZielGruppen", ID); } return true; }
private static bool DoZielGruppenUpdate (Informationen ActuallInformation, List<Guid> TargetZielgruppenSetting) { AltErlaaInfoEntities ZielGruppenAssignmentContext = new AltErlaaInfoEntities (ServiceSource); List<InformationenZuZielGruppen> OldAssignedZielGruppen = (from ZielGrp in ZielGruppenAssignmentContext.InformationenZuZielGruppen where ZielGrp.InformationenID == ActuallInformation.ID select ZielGrp).ToList (); foreach (Guid ZielGruppenID in TargetZielgruppenSetting) { int RemoveIndex = 0; bool Exists = false; foreach (InformationenZuZielGruppen Entry in OldAssignedZielGruppen) { if (Entry.ZielgruppenID == ZielGruppenID) { Exists = true; break; } RemoveIndex++; } if (Exists == true) { OldAssignedZielGruppen.RemoveAt (RemoveIndex); } else { try { ZielGruppenAssignmentContext.MergeOption = MergeOption.AppendOnly; InformationenZuZielGruppen NewEntry = new InformationenZuZielGruppen (); NewEntry.ID = Guid.NewGuid (); NewEntry.InformationenID = ActuallInformation.ID; NewEntry.ZielgruppenID = ZielGruppenID; ZielGruppenAssignmentContext.AddObject ("InformationenZuZielGruppen", NewEntry); DataServiceResponse Response = ZielGruppenAssignmentContext.SaveChanges (); } catch (Exception Excp) { Basics.ReportErrorToEventViewer ("TemplateManagement.DoZielGruppenUpdate", "Beim AddObject für InformationenZuZielGruppen \"" + ZielGruppenID.ToString () + "\" kam es zu folgendem Problem:\r\n" + Excp.Message); return false; } } } foreach (InformationenZuZielGruppen DeleteableEntry in OldAssignedZielGruppen) { Guid ID = DeleteableEntry.ID; try { ZielGruppenAssignmentContext.DeleteObject (DeleteableEntry); ZielGruppenAssignmentContext.SaveChanges (); } catch (DataServiceRequestException Excp) { Basics.ReportErrorToEventViewer ("TemplateManagement.DoZielGruppenUpdate", "Fehler bei Delete von ID = \"" + ID.ToString () + "\":\r\n" + Excp.Message.ToString ()); } } return true; }