private static void DeleteInformationenFromDataBase (Informationen ActuallInformation) { AltErlaaInfoEntities AllInformationenContext = new AltErlaaInfoEntities (ServiceSource); IQueryable<Informationen> DeleteInformationen = from del in AllInformationenContext.Informationen where del.ID == ActuallInformation.ID select del; foreach (Informationen DeleteableEntry in DeleteInformationen) { Guid ID = ActuallInformation.ID; try { AllInformationenContext.DeleteObject (DeleteableEntry); AllInformationenContext.SaveChanges (); } catch (DataServiceRequestException Excp ) { Basics.ReportErrorToEventViewer ("AltErlaaInfoRootControl.DeleteInformationenFromDataBase", "Fehler bei Delete von ID = \"" + ID.ToString () + "\":\r\n" + Excp.Message); } } }
public static bool DoInformationenAddOnUpdate (Informationen ActuallInformation, List<TemplateElementManagement> EntriesTProcess) { AltErlaaInfoEntities InformationmenAddOnContext = new AltErlaaInfoEntities (ServiceSource); IQueryable<InformationenAddOn> OldInformationenAddOn = from InAdd in InformationmenAddOnContext.InformationenAddOn where InAdd.InformationenID == ActuallInformation.ID select InAdd; List<Guid> ProcessingHasBeenDone = new List<Guid> (); List<InformationenAddOn> ExistingEntriesToDelete = new List<InformationenAddOn> (); foreach (InformationenAddOn IAddOn in OldInformationenAddOn) { bool FoundInNew = false; foreach (TemplateElementManagement ElementManagement in EntriesTProcess) { if (ElementManagement.InfoAddOn == null) continue; if (IAddOn.ID == ElementManagement.InfoAddOn.ID) { if (((ElementManagement.InfoAddOn.TabelleID == null) || (ElementManagement.InfoAddOn.TabelleID == Guid.Empty)) && (String.IsNullOrEmpty (ElementManagement.InfoAddOn.FreiText))) { ExistingEntriesToDelete.Add (IAddOn); break; // delete this Entry } if (ElementManagement.ParentTemplateRuntime.AnythingInTheWholeEntryHasBeenModified == true) { AltErlaaInfoEntities UpdateContext = new AltErlaaInfoEntities (ServiceSource); try { InformationenAddOn ExistingInformationAddOn = (from InAddToUpdate in UpdateContext.InformationenAddOn where InAddToUpdate.ID == ElementManagement.InfoAddOn.ID select InAddToUpdate).FirstOrDefault (); UpdateContext.MergeOption = MergeOption.AppendOnly; ElementManagement.InfoAddOn.LastModifiedBy = CurrentUserName; ElementManagement.InfoAddOn.ModifyTimeStamp = DateTime.Now; Type TargetType = IAddOn.GetType (); foreach (PropertyInfo Prop in TargetType.GetProperties ()) { Prop.SetValue (ExistingInformationAddOn, Prop.GetValue (ElementManagement.InfoAddOn, null), null); } CheckForMaxLengthExceeded (ExistingInformationAddOn); UpdateContext.UpdateObject (ExistingInformationAddOn); DataServiceResponse Response = UpdateContext.SaveChanges (); } catch (Exception Excp) { Basics.ReportErrorToEventViewer ("TemplateManagement.DoInformationenAddOnUpdate", "Beim UpdateObject für IAddOn \"" + ElementManagement.InfoAddOn.ID.ToString () + "\" kam es zu folgendem Problem:\r\n" + Excp.Message); return false; } } ProcessingHasBeenDone.Add (ElementManagement.InfoAddOn.ID); } } } foreach (InformationenAddOn IAddOn in ExistingEntriesToDelete) { try { InformationmenAddOnContext.MergeOption = MergeOption.AppendOnly; InformationmenAddOnContext.DeleteObject (IAddOn); DataServiceResponse Response = InformationmenAddOnContext.SaveChanges (); } catch (Exception Excp) { Basics.ReportErrorToEventViewer ("TemplateManagement.DoInformationenAddOnUpdate", "Beim DeleteObject für AddOns \"" + IAddOn.ID.ToString () + "\" kam es zu folgendem Problem:\r\n" + Excp.Message); return false; } } foreach (TemplateElementManagement ElementManagement in EntriesTProcess) { if (ElementManagement.InfoAddOn == null) continue; if (MandatoryAddOns.ContainsKey(ElementManagement.InfoAddOn.ActuallBezeichner)) continue; Guid ProcessedBeforeID = ElementManagement.InfoAddOn.ID; if (ProcessingHasBeenDone.Contains (ProcessedBeforeID)) continue; if (((ElementManagement.InfoAddOn.TabelleID == null) || (ElementManagement.InfoAddOn.TabelleID == Guid.Empty)) && (String.IsNullOrEmpty (ElementManagement.InfoAddOn.FreiText))) { continue; } try { InformationmenAddOnContext.MergeOption = MergeOption.AppendOnly; ElementManagement.InfoAddOn.LastModifiedBy = CurrentUserName; ElementManagement.InfoAddOn.ModifyTimeStamp = DateTime.Now; if ((ElementManagement.InfoAddOn.ID == null) || (ElementManagement.InfoAddOn.ID == Guid.NewGuid ())) ElementManagement.InfoAddOn.ID = Guid.NewGuid (); CheckForMaxLengthExceeded (ElementManagement.InfoAddOn); InformationmenAddOnContext.AddObject ("InformationenAddOn", ElementManagement.InfoAddOn); DataServiceResponse Response = InformationmenAddOnContext.SaveChanges (); } catch (Exception Excp) { Basics.ReportErrorToEventViewer ("TemplateManagement.DoCompleteUpdate", "Beim AddObject für AddOns \"" + ProcessedBeforeID.ToString () + "\" kam es zu folgendem Problem:\r\n" + Excp.Message); return false; } } return true; }
public static void DeleteOneInformationenAddOnFromDataBase (Guid? InformationenAddOnID) { AltErlaaInfoEntities DeleteInformationenAddOnContext = new AltErlaaInfoEntities (ServiceSource); InformationenAddOn DeleteInformationenAddOn = (from del in DeleteInformationenAddOnContext.InformationenAddOn where del.ID == InformationenAddOnID select del).FirstOrDefault (); if ((DeleteInformationenAddOn == null) || (DeleteInformationenAddOn.ID == Guid.Empty)) return; try { DeleteInformationenAddOnContext.DeleteObject (DeleteInformationenAddOn); DeleteInformationenAddOnContext.SaveChanges (); } catch (DataServiceRequestException Excp) { Basics.ReportErrorToEventViewer ("TemplateManagement.DeleteOneInformationenAddOnFromDataBase", "Fehler bei Delete von ID = \"" + InformationenAddOnID.ToString () + "\":\r\n" + Excp.Message); } }
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; }