void SetParameter () { VideoFileName = WMB.Basics.GetCommandLineContent(m_Arguments, WPMediaManagement.ManagedProgrammData.Param_VideoFileName); String VideoControlFileName = WMB.Basics.GetCommandLineContent (m_Arguments, WPMediaManagement.ManagedProgrammData.Param_VideoControlFileName); if (File.Exists (VideoControlFileName)) { m_HostCVM.LoadAndProcessAutoFile (VideoControlFileName); m_VideoPlayingData = m_HostCVM.DeSerializedDesriptionObject as CVM.WPMediaVideoPlayingData; m_VideoPlayingData.SetData (); } String OverlayControlFileName = WMB.Basics.GetCommandLineContent (m_Arguments, WPMediaManagement.ManagedProgrammData.Param_StandBildControlFileName); if (File.Exists (OverlayControlFileName)) { CVM.CommonValues HelpCVM = new CVM.CommonValues (); HelpCVM.LoadAndProcessAutoFile (OverlayControlFileName); m_StandbildPlayingData = HelpCVM.DeSerializedDesriptionObject as CVM.WPMediaStandbildPlayingData; } PlayingIndex = 0; }
private bool SetParameter () { FinalStopTime = m_HostCVM.TimeToStop; m_StandBildPlayingData = m_HostCVM.DeSerializedDesriptionObject as CVM.WPMediaStandbildPlayingData; if (SetParameterForActuallProgrammUnit (m_StandBildPlayingData) == 0) return false; if (!StartPowerPoint ()) return false; // m_PowerPointApplication.SlideShowEnd += new EApplication_SlideShowEndEventHandler (m_PowerPointApplication_SlideShowEnd); m_CloseTimer.Tick += new EventHandler (m_CloseTimer_Tick); m_PowerPoint.Activate (); m_PowerPoint.WindowState = PpWindowState.ppWindowMinimized; return true; }
private int SetParameterForActuallProgrammUnit (WPMediaStandbildPlayingData StandBildPlayingData) { WPMediaRandomController RandomController = CommonDataBase.CommonBasics.GetWPMediaObject (StandBildPlayingData.TableName + "_Randomizer") as WPMediaRandomController; if (RandomController == null) { RandomController = new WPMediaRandomController (); CommonDataBase.CommonBasics.SetWPMediaObject (StandBildPlayingData.TableName + "_Randomizer", RandomController); } // RandomController.FillIndexIndizess (StandBildPlayingData); PresentationsToPlayFromNow = StandBildPlayingData.GetNumberOfPagesOfIndexedEntries (); StandBildPlayingData.IndexToFileIndexToPlay = 0; m_SetupThePlayablePresentationsReturn = SetUpThePlayableFile (); if (!m_SetupThePlayablePresentationsReturn) { StandBildPlayingData.OutputDiagnostics ("SetParameterForActuallProgrammUnit (PowerPoint)"); } return PresentationsToPlayFromNow; }
private void SetParameterForFirstPlayableFile (WPMediaStandbildPlayingData StandBildPlayingData) { if (StandBildPlayingData.TableName != WMB.Basics.Type_MultipleTable) { if (m_StandBildPlayingData.TableDefinitionTable != null) { LoadFadingParameter (m_StandBildPlayingData.TableDefinitionTable.Rows [0] ["SerienWechselFadings"].ToString (), m_StandBildPlayingData.TableDefinitionTable.Rows [0] ["BildWechselFadings"].ToString ()); TimingTypeForAllEntries = m_StandBildPlayingData.TableDefinitionTable.Rows[0]["EntryTimingType"].ToString(); PlayingOrderForAllEntries = m_StandBildPlayingData.TableDefinitionTable.Rows[0]["PlayingOrder"].ToString(); } WPMediaRandomController RandomController = CommonDataBase.CommonBasics.GetWPMediaObject (StandBildPlayingData.TableName + "_Randomizer") as WPMediaRandomController; if (RandomController == null) { RandomController = new WPMediaRandomController (); CommonDataBase.CommonBasics.SetWPMediaObject (StandBildPlayingData.TableName + "_Randomizer", RandomController); } // RandomController.FillIndexIndizess (StandBildPlayingData); RandomController.ShowNamesOfSortedActiveDescriptions(StandBildPlayingData, "SetParameterForFirstPlayableFile"); } else { StandBildPlayingData.CorrectPagePlayingDurations (SchedulingDefinedOverallTimeSpan); } PicturesToPlayFromNow = StandBildPlayingData.GetNumberOfPagesOfIndexedEntries (); StandBildPlayingData.IndexToFileIndexToPlay = 0; if (GetLastProgressInfoCall != null) { List<String> Rememberables = GetLastProgressInfoCall (this); if (StandBildPlayingData.TableDefinitionTable != null) { if (StandBildPlayingData.TableDefinitionTable == null) { WMB.Basics.ReportErrorToEventViewer ("StandBildPlayingData.TableDefinitionTable == null"); throw new Exception ("StandBildPlayingData.TableDefinitionTable == null"); } if ((StandBildPlayingData.TableDefinitionTable.Rows [0] ["EntryTimingType"].ToString () != "Fix") && (StandBildPlayingData.TableDefinitionTable.Rows [0] ["EntryTimingType"].ToString () != "MeaningOfOutsideSetDuration")) { if (!String.IsNullOrEmpty (Rememberables [0])) StandBildPlayingData.IndexToFileIndexToPlay = Convert.ToInt32 (Rememberables [0]); if ((Rememberables.Count > 1) && (!String.IsNullOrEmpty (Rememberables [1]))) PageIndexToProcessAfterRestart = Convert.ToInt32 (Rememberables [1]); else PageIndexToProcessAfterRestart = -1; } } } List<String> NewStartupEntries = new List<string>(); NewStartupEntries.Add("-1"); NewStartupEntries.Add("-1"); NewStartupEntries.Add("-1"); if (SetProgressInfoCall != null) SetProgressInfoCall(this, NewStartupEntries); m_ReturnOfTheLastSetUpThePlayablePackage = SetUpOnePlayablePackageFile (); while (!m_ReturnOfTheLastSetUpThePlayablePackage) { ActuallyNotAvailableFiles.Add(StandBildPlayingData.IndexToFileIndexToPlay); StandBildPlayingData.OutputDiagnostics ("SetParameterForFirstPlayableFile"); ShowErrornousCallingParameter ("SetParameterForFirstPlayableFile"); StandBildPlayingData.IndexToFileIndexToPlay++; PageIndexToProcessAfterRestart = -1; if (StandBildPlayingData.IsFileIndexToPlayCorrect(SchedulingDefinedStopDateTime)) m_ReturnOfTheLastSetUpThePlayablePackage = SetUpOnePlayablePackageFile (); else break; } }
List<String> GetStandBildIndizessFiles (DataHandling Dh, WPMediaStandbildPlayingData StandBildPlayingData) { List<String> Names = WMB.Basics.GetFilesFromDirectory (WMB.Basics.GetRemoteWPMediaRoot () + "\\WPMediaFinalInternetSource\\" + StandBildPlayingData.TableName, new string[ ] {"*StandBildArchiv*.xml"}, 1); Names.Sort (); return Names; }
public void SetParameter () { PageIndexToProcessAfterRestart = -1; if (WMB.Basics.IsTestRun) WMB.Basics.ReportInformationToEventViewer ("StandBildTV.SetParameter", "Mit folgenden Parametern:\r\n" + GetParameterString ()); SchedulingDefinedOverallTimeSpan = TimeSpan.MinValue; OutsideDefinedPictureDuration = TimeSpan.MinValue; if (!String.IsNullOrEmpty (WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_PICTURE_DURATION))) OutsideDefinedPictureDuration = TimeSpan.FromSeconds (Convert.ToDouble (WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_PICTURE_DURATION))); if (!String.IsNullOrEmpty (WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_DURATION_PARAMETER))) { SchedulingDefinedOverallTimeSpan = TimeSpan.FromSeconds (Convert.ToDouble (WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_DURATION_PARAMETER))); SchedulingDefinedStopDateTime = DateTime.Now + SchedulingDefinedOverallTimeSpan; } if (SchedulingDefinedOverallTimeSpan == TimeSpan.MinValue) if (!String.IsNullOrEmpty (WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_STOP_TIME_PARAMETER))) { SchedulingDefinedStopDateTime = DateTime.Parse (WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_STOP_TIME_PARAMETER)); SchedulingDefinedOverallTimeSpan = SchedulingDefinedStopDateTime - DateTime.Now; } if (WMB.Basics.IsTestRun) { WMB.Basics.ReportInformationToEventViewer (m_MessageDescriptionID + ".SetParameter", "Aufruf mit:\r\n" + GetParameterString ()); } TypeOfBeitrag = WMB.Basics.GetCommandLineContent (m_Arguments, CVM.CommonValues.WPMEDIA_TYPE_OF_BEITRAG); if (TypeOfBeitrag == WPMediaManagement.ManagedProgrammData.Type_UtilityDisplay) { ExtensionOfPrimaryControlFile = Path.GetExtension (m_Arguments [1]).ToUpper (); if (ExtensionOfPrimaryControlFile == ".EXT") { if (m_StandBildPlayingData == null) { m_StandBildPlayingData = m_HostCVM.DeSerializedDesriptionObject as CVM.WPMediaStandbildPlayingData; } if (m_StandBildPlayingData == null) { WMB.Basics.ReportErrorToEventViewer (m_MessageDescriptionID + ".SetParameter", "m_StandBildPlayingData == null-Deserialization hat nicht funktioniert"); return; } ProcessExtFileDisplay (m_Arguments [1], m_StandBildPlayingData); m_HostCVM.TimeToStop = DateTime.Now.AddSeconds (m_StandBildPlayingData.GetFullDuration ()); // return; } if (ExtensionOfPrimaryControlFile == ".SER") { ProcessSerFileDisplay (m_Arguments [1]); return; } if (ExtensionOfPrimaryControlFile == ".PKG") { m_StandBildPlayingData = new WPMediaStandbildPlayingData(); m_StandBildPlayingData.StandBildTVVersion = "PKG_Version"; m_StandBildPlayingData.FillDefaultsForSimpleUsages (m_Arguments[1]); m_StandBildPlayingData.TableName = WPMediaManagement.ManagedProgrammData.Type_MultipleTable; } else { if ((m_StandBildPlayingData == null) && (m_HostCVM.DeSerializedDesriptionObject != null)) { m_StandBildPlayingData = m_HostCVM.DeSerializedDesriptionObject as CVM.WPMediaStandbildPlayingData; } if (m_StandBildPlayingData == null) { WMB.Basics.ReportErrorToEventViewer(m_MessageDescriptionID + ".SetParameter", "m_StandBildPlayingData == null-Deserialization hat nicht funktioniert"); return; } } } else if (TypeOfBeitrag == WPMediaManagement.ManagedProgrammData.Type_MultipleTable) { if (m_StandBildPlayingData == null) { m_StandBildPlayingData = m_HostCVM.DeSerializedDesriptionObject as CVM.WPMediaStandbildPlayingData; } if (m_StandBildPlayingData == null) { WMB.Basics.ReportErrorToEventViewer (m_MessageDescriptionID + ".SetParameter", "m_StandBildPlayingData == null-Deserialization bei Type_MultipleTable hat nicht funktioniert"); return; } } else { if (m_StandBildPlayingData == null) { m_StandBildPlayingData = m_HostCVM.DeSerializedDesriptionObject as CVM.WPMediaStandbildPlayingData; } if (m_StandBildPlayingData == null) { WMB.Basics.ReportErrorToEventViewer (m_MessageDescriptionID + ".SetParameter", "m_StandBildPlayingData == null-Deserialization bei Type_UtilityDisplay hat nicht funktioniert"); return; } if ((SchedulingDefinedOverallTimeSpan != TimeSpan.MinValue) && (TimingTypeForAllEntries == CVM.CommonValues.WPMEDIA_ENTRY_TIMING_TYPE_APPROXIMATELY)) { if (((m_StandBildPlayingData.OverallPlayLength * (1 - (PercentageOfAllowedDefinedToAvailableDuration / 100))) < SchedulingDefinedOverallTimeSpan.TotalSeconds) && ((m_StandBildPlayingData.OverallPlayLength * (1 + (PercentageOfAllowedDefinedToAvailableDuration / 100))) > SchedulingDefinedOverallTimeSpan.TotalSeconds)) m_StandBildPlayingData.CorrectPagePlayingDurations (SchedulingDefinedOverallTimeSpan); } } StopHasBeenSet = false; m_MessageDescriptionID = "StandBildTV_" + m_StandBildPlayingData.TableName; if (m_XAML == null) m_XAML = new XAMLHandling (m_HostCVM); m_XAML.ShowGridLines = false; m_DirectoryToProcessIndex = m_HostCVM.DirectoryToProcessIndex; if (m_DirectoryToProcessIndex != 0) throw new Exception ("Mehr als ein Directory ist dzt. nicht implementiert"); FinalStopTime = m_HostCVM.TimeToStop; PageIndexToProcessAfterRestart = 0; SetParameterForFirstPlayableFile (m_StandBildPlayingData); }
Window ProcessExtFileDisplay (String FileName, WPMediaStandbildPlayingData PlayingData) { List<String> DisplayableInfos = PlayingData.CreateReadableContentDescription (FileName); Window HelperWindow = new Window (); HelperWindow.Title = "Inhalt von \"" + FileName + "\""; ListBox DisplayBox = new ListBox (); HelperWindow.Content = DisplayBox; DisplayBox.ItemsSource = DisplayableInfos; HelperWindow.Show (); return HelperWindow; }
private bool PlayingDataObjectsAreEqual (WPMediaStandbildPlayingData Old, WPMediaStandbildPlayingData New) { if (!WMB.Basics.CheckIfPublicPropertiesEqual (New, Old)) return false; if (!WMB.Basics.CheckIfStringListEqual(New.NamesOfLocalToDownloadDescriptions, Old.NamesOfLocalToDownloadDescriptions)) return false; if (!WMB.Basics.CheckIfStringListEqual(New.NamesOfTodayActiveDescriptions, Old.NamesOfTodayActiveDescriptions)) return false; if (!WMB.Basics.CheckIfIntListEqual(New.NumberOfPagesOfEachDescription, Old.NumberOfPagesOfEachDescription)) return false; if (!WMB.Basics.CheckIfTimeSpanListEqual(New.PlayLengthOfEachDescription, Old.PlayLengthOfEachDescription)) return false; if (!WMB.Basics.CheckIfDateTimeListEqual(New.LastWriteTimesOfNamesOfActiveDescriptions, Old.LastWriteTimesOfNamesOfActiveDescriptions)) return false; return true; }
/* public void CreateGalleriePlayingData (String PictureElementsFileRootDirectory, String TableName, DataRow TableTableRow) { CVM.CommonValues m_CVM = new CVM.CommonValues (); XAMLHandling m_XAMLHandling = new XAMLHandling (m_CVM); LocalWPMediaRoot = CommonDataBase.DataBase.GetLocalWPMediaRoot (); String TableDirectory = Path.Combine (PictureElementsFileRootDirectory, TableName); List<FileInfo> ExistingFiles = WMB.Basics.GetFileInfoEntriesFromDirectory (TableDirectory, new string [] { ControlFileExtension }, 1); return; } */ public void CreateStandbildPlayingData (String WPMediaServerRootDirectory, String PackageFilesRootDirectory, String TableName, DataRow tableDefinitionRow) { if (WMB.Basics.IsTestRun) { int NumberOfFiles = WMB.Basics.GetFilesFromDirectory (Path.Combine(PackageFilesRootDirectory, TableName), new string[] { "*.pkg" }, 1).Count; WMB.Basics.ReportInformationToEventViewer("WPMediaCentralServices.CreateStandbildPlayingData", "PackageFilesRootDirectory =\r\n\"" + PackageFilesRootDirectory + "\" Tabelle =\r\n\"" + TableName + "\" " + Convert.ToString(NumberOfFiles) + " Files"); } DateTime DateTimeToHandle = DateTime.Now; CVM.CommonValues m_CVM = new CVM.CommonValues(); XAMLHandling m_XAMLHandling = new XAMLHandling (m_CVM); LocalWPMediaRoot = CommonDataBase.DataBase.GetLocalWPMediaRoot (); String TableDirectory = Path.Combine (PackageFilesRootDirectory, TableName); List<FileInfo> ExistingFiles = WMB.Basics.GetFileInfoEntriesFromDirectory (TableDirectory, new string [] { ControlFileExtension }, 1); if (ExistingFiles == null) return; WPMediaStandbildPlayingData Description = new WPMediaStandbildPlayingData(); //ToDo Checking for IsActive on this day - new Implementation List<MMUnitUsageData> PossibleDataFromDataBase = Data.DbServer3.WPMediaAddOnData.GetWPMediaAddOnDataStandBildUsagePerTabelle (TableName, Data.DbServer3.WPMediaAddOnData.Timings .GetPossiblyInvolvedConnectedIds(DateTimeToHandle)[TableName]); Dictionary<DateTime, List<MMUnitUsageData>> AvtiveThisDayParameter = new Dictionary<DateTime, List<MMUnitUsageData>>() { { DateTimeToHandle, GetDayMMUnitUsageData (PossibleDataFromDataBase, DateTimeToHandle) } }; //TODO //MMUnitUsageTreeEntry Root = MMUnitUsageTreeEntry.GetUsageTree (null, null, null, null); //int WeekDay = (int) DateTime.Now.DayOfWeek; //List<MMUnitUsageData> DownloadEntriesStandBildUsageData = Root.Childs[MMUnitUsageTreeEntry.ALL_ACTIVE_ENTRIES].ContentList; // MMUnitUsageTreeEntry RootsChilds = Root.Childs [MMUnitUsageTreeEntry.ALL_ACTIVE_ENTRIES]; //List<MMUnitUsageData> AllDayUsageData = RootsChilds.Childs[MMUnitUsageTreeEntry.ALL_DAY_ENTRIES].ContentList; //List<MMUnitUsageData> ThisWeekDayUsageData = RootsChilds.Childs[WMB.Basics.ShortWeekDayNames[WeekDay]].ContentList; //Description.NamesOfLocalToDownloadDescriptions = new List<string> (); //foreach (MMUnitUsageData UsageData in DownloadEntriesStandBildUsageData) // { // Description.NamesOfLocalToDownloadDescriptions.Add(UsageData.PackageFileNamePart); // } //foreach (MMUnitUsageData UsageData in AllDayUsageData) // { // Description.NamesOfTodayActiveDescriptions.Add(UsageData.PackageFileNamePart); // } //foreach (MMUnitUsageData UsageData in ThisWeekDayUsageData) // { // Description.NamesOfTodayActiveDescriptions.Add(UsageData.PackageFileNamePart); // } Description.NamesOfTodayActiveDescriptions = new List<string>(); foreach (MMUnitUsageData UsageData in AvtiveThisDayParameter[DateTimeToHandle]) { Description.NamesOfTodayActiveDescriptions.Add(UsageData.PackageFileNamePart); } foreach (String PackageFileName in Description.NamesOfTodayActiveDescriptions) { bool Found = false; foreach (FileInfo FInfo in ExistingFiles) { if (FInfo.Name.ToLower () == Path.GetFileName (PackageFileName).ToLower ()) Found = true; } if (!Found) { WMB.Basics.ReportErrorToEventViewer("WPMediaCentralService.CreateStandbildPlayingData", "Der PackageFile \"" + PackageFileName + "\" fehlt"); } } int SkipLength = PackageFilesRootDirectory.Length + 1 - "Source\\".Length; if (WMB.Basics.IsTestRun) WMB.Basics.ReportInformationToEventViewer ("WPMediaCentralServices.CreateStandbildPlayingData", "NamesOfLocalToDownloadDescriptions = " + Convert.ToString (Description.NamesOfLocalToDownloadDescriptions.Count) + "\r\nNamesOfTodayActiveDescriptions = " + Convert.ToString (Description.NamesOfTodayActiveDescriptions.Count)); String EntryTimingType = tableDefinitionRow[CVM.CommonValues.WPMEDIA_ENTRY_TIMING_TYPE].ToString(); String PlayingOrder = tableDefinitionRow [CVM.CommonValues.WPMEDIA_ENTRY_PLAYING_ORDER].ToString (); double EntryDuration = 8; if (tableDefinitionRow [CVM.CommonValues.WPMEDIA_ENTRY_ENTRY_DURATION] != null) { if (!String.IsNullOrEmpty (tableDefinitionRow [CVM.CommonValues.WPMEDIA_ENTRY_ENTRY_DURATION].ToString ())) EntryDuration = Convert.ToDouble (tableDefinitionRow [CVM.CommonValues.WPMEDIA_ENTRY_ENTRY_DURATION]); } double OutsideSetDuration = -1; if (tableDefinitionRow [CVM.CommonValues.WPMEDIA_OUTSIDE_SET_DURATION] != null) { if (!String.IsNullOrEmpty (tableDefinitionRow [CVM.CommonValues.WPMEDIA_OUTSIDE_SET_DURATION].ToString ())) OutsideSetDuration = Convert.ToDouble (tableDefinitionRow [CVM.CommonValues.WPMEDIA_OUTSIDE_SET_DURATION]); } String MeaningOfOutsideSetDuration = tableDefinitionRow [CVM.CommonValues.WPMEDIA_MEANING_OF_OUTSIDE_SET_DURATION].ToString (); Description.TableName = TableName; Description.TableDefinitionTable = tableDefinitionRow.Table.Clone (); DataRow TableDefinitionRow = Description.TableDefinitionTable.NewRow (); TableDefinitionRow.ItemArray = tableDefinitionRow.ItemArray; Description.TableDefinitionTable.Rows.Add (TableDefinitionRow); Description.NameOfProcessingModule = tableDefinitionRow ["Type"].ToString (); Description.NamesOfActiveDescriptions = new List<string> (); Description.SortFields = new List<string> (); Description.LastWriteTimesOfNamesOfActiveDescriptions = new List<DateTime> (); Description.PlayLengthOfEachDescription = new List<TimeSpan> (); Description.NumberOfPagesOfEachDescription = new List<int> (); Description.NameOfPlayingDataDescription = TableName; Description.OverallPlayLength = 0; int OverallNumberOfPictures = 0; String TableType = tableDefinitionRow [CVM.CommonValues.WPMEDIA_ENTRY_TYPE_OF_TABLE].ToString (); ManagedTimingsControl TimingsCheckerClass = new ManagedTimingsControl (); CVM.ITimingsInterface TimingsCheckerInterface = TimingsCheckerClass as ITimingsInterface; TimingsCheckerInterface.m_TimingsTypenDataSet = m_DataBase.GetCommonDataSet ("Select * from TimingTypen"); foreach (String PackageFileName in Description.NamesOfTodayActiveDescriptions) { FileInfo Entry = new FileInfo(Path.Combine(PackageFilesRootDirectory, PackageFileName)); String ID = Path.GetFileNameWithoutExtension (Entry.FullName); DataTable UsedTimings; if (TimingsCheckerInterface.IsActive (ID, out UsedTimings) == false) continue; int NumberOfPages = 0; String SortField = PlayingOrder; TimeSpan PlayLengthForThisEntry = TimeSpan.Zero; List <double> PageDurations = new List<double> (); GraphicsHandling GraphicsHandler = new GraphicsHandling (LocalWPMediaRoot); if (GraphicsHandler.GetInstatiatedPackage (Entry.FullName) == null) { WMB.Basics.ReportErrorToEventViewer("WPMediaCentralServices.CreateStandbildPlayingData", "Der File\r\n\"" + Entry.FullName + "\"\r\nkonnte nicht als gültiges Package aufgelöst werden.\r\n" + "In der Folge werden damit Fehler auftreten"); continue; } List<TimeSpan> DurationForEachPage = new List<TimeSpan> (); foreach (double PageDuration in GraphicsHandler.PageDurations) { PlayLengthForThisEntry += TimeSpan.FromSeconds(PageDuration); DurationForEachPage.Add(TimeSpan.FromSeconds(PageDuration)); } SortField = GraphicsHandler.GetFilledSortField (SortField); NumberOfPages = GraphicsHandler.PageDurations.Count; GraphicsHandler.Close (); Description.StandBildTVVersion = "PKG_Version"; Description.DurationOfEachPageInEachDescription.Add (DurationForEachPage); Description.FillTimingsForEachDescription (ID, UsedTimings); if ((NumberOfPages == 0) || (PlayLengthForThisEntry == TimeSpan.Zero)) { WMB.Basics.ReportErrorToEventViewer ("WPMediaCentralServices.CreateStandbildPlayingData", Entry.FullName + " in der Table \"" + TableName + "\" hat eine PlayLength von 0"); continue; } Description.NamesOfActiveDescriptions.Add (Entry.FullName.Substring (SkipLength)); if (String.IsNullOrEmpty(Description.SubDirectoryWhereTheDescriptionsAreLocated)) { Description.SubDirectoryWhereTheDescriptionsAreLocated = Path.GetDirectoryName (Entry.FullName.Substring (SkipLength)); } Description.LastWriteTimesOfNamesOfActiveDescriptions.Add (Entry.LastWriteTime); Description.SortFields.Add (SortField); Description.NumberOfPagesOfEachDescription.Add (NumberOfPages); OverallNumberOfPictures += NumberOfPages; Description.OverallPlayLength += PlayLengthForThisEntry.TotalSeconds; Description.PlayLengthOfEachDescription.Add (PlayLengthForThisEntry); } if (OutsideSetDuration > 0) { if (MeaningOfOutsideSetDuration == CVM.CommonValues.WPMEDIA_MEANING_OF_OUTSIDE_SET_DURATION_MAX) if (OutsideSetDuration < Description.OverallPlayLength) Description.OverallPlayLength = OutsideSetDuration; if (MeaningOfOutsideSetDuration == CVM.CommonValues.WPMEDIA_MEANING_OF_OUTSIDE_SET_DURATION_FIX) Description.OverallPlayLength = OutsideSetDuration; } Description.OverallNumberOfPicturesToShow = OverallNumberOfPictures; String ControlFileName = Description.TableName; if (tableDefinitionRow ["DefinitionNameToCreate"] != Convert.DBNull) if (!String.IsNullOrEmpty (tableDefinitionRow ["DefinitionNameToCreate"].ToString ())) ControlFileName = tableDefinitionRow ["DefinitionNameToCreate"].ToString (); //TODO String PlayingDataDirectory = Path.Combine(LocalWPMediaRoot, XML_SENDER_AUTO_CONTROL_DIRECTORY); String PlayingDataDirectory = Path.Combine(WPMediaServerRootDirectory, XML_SENDER_AUTO_CONTROL_DIRECTORY); if (!Directory.Exists (PlayingDataDirectory)) Directory.CreateDirectory (PlayingDataDirectory); String FileName = Path.Combine (PlayingDataDirectory, ControlFileName + AUTO_CONTROL_FILE_EXT_EXTENSION_SHORT); Description.FillIndexIndizess (); WPMediaStandbildPlayingData EarlierDescription = GetWPMediaStandbildPlayingDataFromAssembledFile (FileName); // EarlierDescription.ClearAllRandomElements(); if (PlayingDataObjectsAreEqual(EarlierDescription, Description)) return; MemoryStream ContentOfPlayingData = AssembleContentOfPlayingData(Description, Convert.ToString(Description.OverallPlayLength), Description.TableName, "StandbildTV"); bool CorrectDeleted = true; if (File.Exists (FileName)) { CorrectDeleted = CommonDataBase.CommonBasics.SecureFileDelete (FileName, null); } if (CorrectDeleted) { FileStream TargetFile = File.Open (FileName, FileMode.Create, FileAccess.Write); ContentOfPlayingData.WriteTo(TargetFile); TargetFile.Close (); } ContentOfPlayingData.Close (); }
object CreateMultiTableEnvironmentCall (Object ActiveCVM, string [] Argumente) { WPMediaManagement.SingletonManagedProgrammManagement.Instance.CheckForLoad (); SingletonManagedProgrammManagement.Instance.SetInUse = true; CVM.WPMediaStandbildPlayingData PlayingData = new WPMediaStandbildPlayingData (); PlayingData.SubDirectoryWhereTheDescriptionsAreLocated = Path.Combine (WMB.Basics.GetLocalWPMediaRoot (), WMB.Basics.XML_AUTO_CONTENT_SOURCE); PlayingData.TableName = ManagedProgrammData.Type_MultipleTable; PlayingData.TableDefinitionTable = WPMediaManagement.SingletonManagedProgrammManagement .Instance.ActuallManagedProgrammManagement.ActuallProgrammData .ProgrammDataSet.Tables ["TableDefinitions"]; String BeitragsID = (ActiveCVM as CVM.CommonValues).m_Arguments ["VideoBeitragsID"]; DataSet BeitragsDataSet = WPMediaManagement.SingletonManagedProgrammManagement .Instance.ActuallManagedProgrammManagement.ActuallProgrammData .FullBeitragList [BeitragsID]; DataTable StructuredMaterial = BeitragsDataSet.Tables ["StructuredMaterial"]; PlayingData.StandBildTVVersion = "PKG_Version"; PlayingData.NamesOfActiveDescriptions = new List<string> (); PlayingData.LastWriteTimesOfNamesOfActiveDescriptions = new List<DateTime> (); PlayingData.PlayLengthOfEachDescription = new List<TimeSpan> (); PlayingData.SortFields = new List<string> (); PlayingData.NumberOfPagesOfEachDescription = new List<int> (); int RunningIndex = 0; List<int> FileIndizessesToPlay = new List<int> (); foreach (String EntryToPlay in Argumente [0].Split (';')) { PlayingData.NamesOfActiveDescriptions.Add (EntryToPlay); String ID = Path.GetFileNameWithoutExtension (EntryToPlay); String TableName = Path.GetFileName (Path.GetDirectoryName (EntryToPlay)); DataRow [] MaterialRows = StructuredMaterial.Select ("ID = '" + ID + "'"); if (MaterialRows.Length != 1) continue; if (MaterialRows [0] ["NumberOfPages"] != Convert.DBNull) PlayingData.NumberOfPagesOfEachDescription.Add (Convert.ToInt32 (MaterialRows [0] ["NumberOfPages"])); else PlayingData.NumberOfPagesOfEachDescription.Add (1); if (MaterialRows [0] ["PlayingDurationInSeconds"] != Convert.DBNull) PlayingData.PlayLengthOfEachDescription.Add (TimeSpan.FromSeconds(Convert.ToDouble (MaterialRows [0] ["PlayingDurationInSeconds"].ToString ().Replace (".", ",")))); else PlayingData.PlayLengthOfEachDescription.Add(TimeSpan.FromSeconds( 12)); FileIndizessesToPlay.Add (RunningIndex++); } PlayingData.SetFileIndizessesToPlay (FileIndizessesToPlay); SingletonManagedProgrammManagement.Instance.SetInUse = false; return PlayingData; }