private bool DoDataBaseConversion(AddOnDataToReProcess addOnDataToReProcess, ReProcessEntry reProcessEntry, String[] columnNames) { switch (addOnDataToReProcess.MMUnitTypToProcess.Redaktion) { case "Video": throw new Exception($"return DoDataBaseConversionBeitraege " + $"(addOnDataToReProcess, reProcessEntry, columnNames); "); break; case "StandBild": return DoDataBaseConversionStandBildUndBanner (addOnDataToReProcess, reProcessEntry, columnNames); break; case "Banner": return DoDataBaseConversionStandBildUndBanner (addOnDataToReProcess, reProcessEntry, columnNames); break; } throw new Exception($"unknown Redaktion {addOnDataToReProcess.MMUnitTypToProcess.Redaktion}"); }
private bool DoDataBaseConversionStandBildUndBanner(AddOnDataToReProcess addOnDataToReProcess, ReProcessEntry reProcessEntry, String[] columnNames) { DataRow[] standBildDataRow = addOnDataToReProcess .CsTableToProcess.Select($"{addOnDataToReProcess.IdColumnName} = '{reProcessEntry.Id}'", "ModifyTimeStamp"); if (standBildDataRow.Length == 0) { if (Data.DbServer3.MultiMedia.MMUnits.Find(reProcessEntry.Id) != null) Data.DbServer3.MultiMedia.MMUnits.Find(reProcessEntry.Id).Delete(); return false; } DataRow row = standBildDataRow[0]; Guid id = (Guid)row[addOnDataToReProcess.IdColumnName]; DateTime actuallCheckDate = Convert.ToDateTime(row["ModifyTimeStamp"]); if (actuallCheckDate > addOnDataToReProcess.StatusEntry.LastProcessedForeignLastChangedTimeStamp) addOnDataToReProcess.StatusEntry.LastProcessedForeignLastChangedTimeStamp = actuallCheckDate; MMUnit MMUnitEntry = Data.DbServer3.MultiMedia.MMUnits.Find(id); if (MMUnitEntry != null) { try { List<String> SelectedStatementsForPreLoad = null; //if (!Data.DbServer3.MultiMedia.PreLoadAllForOneMMUnit(reProcessEntry.Id, out SelectedStatementsForPreLoad)) // { // WMB.Basics.ReportErrorToEventViewer($"Fehler bei PreLoadAllForOneMMUnit:\r\n" + // $"{String.Join("\r\n", SelectedStatementsForPreLoad)}"); // return false; // } //Data.DbServer3.MultiMedia.AcceptChanges(); MMUnitEntry.Delete(); Data.DbServer3.MultiMedia.MMUnits.SaveChanges(new Object()); Data.DbServer3.MultiMedia.AcceptChanges(); } catch (Exception Excp) { WMB.Basics.ReportErrorToEventViewer($"Fehler bei Delete in PreLoadAllForOneMMUnit:\r\n" + $"{Excp}"); return false; } } MMUnitEntry = Data.DbServer3.MultiMedia.MMUnits.NewRow(); MMUnitEntry.Id = id; MMUnitEntry.TypId = addOnDataToReProcess.MMUnitTypToProcess.Id; MMUnitEntry.ForeignUnitId = id; MMUnitEntry.ForeignUnitTypId = addOnDataToReProcess.MMUnitTypToProcess.Id; //Data.DbServer3.MultiMedia.MMUnits.Rows.Add(MMUnitEntry); MMUnitEntry.NameId = row[addOnDataToReProcess.NameIdColumnName].ToString(); MMUnitEntry.Title = row[addOnDataToReProcess.TitelColumnName].ToString(); if (reProcessEntry.LastModifiedTimeToUse != null) MMUnitEntry.LastModified = reProcessEntry.LastModifiedTimeToUse; else if ((columnNames.Contains("ModifyTimeStamp")) && (row["ModifyTimeStamp"] != Convert.DBNull)) MMUnitEntry.LastModified = Convert.ToDateTime(row["ModifyTimeStamp"]); ProcessConnector[] connectors = Data.DbServer3.AltErlaaInfo.ProcessConnectoren .FindOrLoad_By_TableId(id); if ((connectors != null) && (connectors.Length > 0)) { connectors[0].ModifyTimeStampForConnectedMMUnit = MMUnitEntry.LastModified; if (Parent.CheckOrInsertMMInformation((Guid)connectors[0].InformationenId)) MMUnitEntry.MMInformationenId = connectors[0].InformationenId; } else { new InformationConversion().CreateWPMediaAddOnDataDummyInformation(MMUnitEntry, true); } //TODO by sac // Data.DbServer3.MultiMedia.SaveAnabolic(); //Data.DbServer3.MultiMedia.AcceptChanges(); MMUnitEntry.Table.Rows.Add(MMUnitEntry); ImportMMElemente(addOnDataToReProcess.MMUnitTypToProcess, id, row, columnNames); Data.DbServer3.MultiMedia.SaveAnabolic(new Object()); Data.DbServer3.MultiMedia.AcceptChanges(); reProcessEntry.SetDBProcessDone(); return true; }
private void CheckAndInsertOrSkipEntry(ObservableCollection<ReProcessEntry> collectionToFill, ReProcessEntry entryToInsertIfNotInCollection) { if ((collectionToFill.Count() == 0) || (collectionToFill.Where(whe => whe.Id == entryToInsertIfNotInCollection.Id).FirstOrDefault() == null)) collectionToFill.Add(entryToInsertIfNotInCollection); }