Exemple #1
0
		private bool RefreshInternetPictures (PkgFileEntryData Entry)
			{
			DataSet TimingsDataSet = DataBaseFromName ["WPMediaAddOnData"].GetCommonDataSet
				(String.Format ("Select * from Timings where ConnectedID = '{0}' and  TimingTypID = 'VonBis'", Entry.ID));
			List<String> TimingPraefixes = new List<string> ();

			foreach (DataRow TimingRow in TimingsDataSet.Tables ["Timings"].Rows)
				{
				String Praefix = String.Empty;
				if (Convert.ToDateTime (TimingRow ["TimeA"]) > DateTime.Now.AddDays (1).Date)
					Praefix = Convert.ToDateTime (TimingRow ["TimeB"]).ToString ("yyyy_MM_dd_");	// to indicate Future Picture
				else
					Praefix = Convert.ToDateTime (TimingRow ["TimeB"]).ToString ("yyyy_MM_dd_");	// to indicate actuall picture
				TimingPraefixes.Add (Praefix);
				}
			if (TimingPraefixes.Count == 0)
				TimingPraefixes.Add ("1990_01_01_");

			String RootDirectory = Path.Combine (FilePathToInternetPicturesForPkgs, Entry.TableName);

			if (!Directory.Exists (RootDirectory))
				Directory.CreateDirectory (RootDirectory);
			if ((Entry.ActuallTablePkgFileInfo == null)
				&& (Entry.OldTablePkgFileInfo == null))
				return false;
			List<System.Windows.Media.Imaging.BitmapSource> PictureList = GetPicturesFromPackage
				(((Entry.ActuallTablePkgFileInfo != null)
					 ? Entry.ActuallTablePkgFileInfo.FullName
					 : Entry.OldTablePkgFileInfo.FullName),
							new System.Windows.Size (200, 100), true);
			if ((PictureList == null)
				|| (PictureList.Count == 0))
				return false;
			List<String> WrittenFilrNames = new List<string> ();
			foreach (String TimingPraefix in TimingPraefixes)
				{
				int PictureIndex = 0;
				while (PictureIndex < PictureList.Count / 2)
					{
					BitmapSource ThumbPicture = PictureList [PictureIndex * 2];
					BitmapSource FullPicture = PictureList [(PictureIndex * 2) + 1];
					List<String> Names = GetNamesForInternetStandBildTV (RootDirectory, Entry.ID, TimingPraefix, PictureIndex);
					Basics.StoreOrModifyJpgPicture (FullPicture, Names [0]);
					FileInfo HelperInfo = new FileInfo (Names [0]);
					HelperInfo.CreationTime = HelperInfo.LastWriteTime = HelperInfo.LastAccessTime = DateTime.Now;
					//JpegBitmapEncoder JpgDiskEncoder = new JpegBitmapEncoder ();
					//JpgDiskEncoder.Frames.Add (BitmapFrame.Create (Picture));
					PictureIndex++;
					}
				}
			PictureList.Clear ();

			List<String> AllFilesForThisID = Basics.GetFilesFromDirectory (RootDirectory, new String [] { "*_" + Entry.ID + "*.*" }, -1);
			foreach (String FileNameToCheck in AllFilesForThisID)
				{
				String TimingPart = Path.GetFileNameWithoutExtension (FileNameToCheck).Substring (0, 11);
				if (TimingPart == "1990_01_01_")
					continue;
				if (TimingPraefixes.Contains (TimingPart))
					continue;
				String FileNameToDelete = FileNameToCheck;
				//Basics.ReportInformationToEventViewer ("WPMediaCentralServices.WriteOrRewritePicturesFor",
				//    "Wegen fehlendem Timing zu löschen:\r\n\"" + FileNameToDelete + "\"");
				Basics.SecureFileDelete (FileNameToDelete);
				}
			return true;
			}
Exemple #2
0
		public Dictionary<String, PkgFileEntryData> GetNotActuallPkgFileEntryData
			(DataTable ActiveKarteiEntries, String TableName, DateTime ThreshHoldUseModifiedLaterThan)
			{
			Dictionary<String, PkgFileEntryData> Result = new Dictionary<string, PkgFileEntryData> ();
			List<FileInfo> ActuallTablePkgFileNames = null;
			List<FileInfo> OldTablePkgFileNames = null;
			List<FileInfo> InternetFileNames = null;
			try
				{
				ActuallTablePkgFileNames = Basics.GetFileInfoEntriesFromDirectory
					(Path.Combine (FilePathToActuallPkgs, TableName),
					 new String [] { "*.pkg" }, -1, ThreshHoldUseModifiedLaterThan, false);
				OldTablePkgFileNames = Basics.GetFileInfoEntriesFromDirectory
					(Path.Combine (FilePathToOldPkgs, TableName),
					 new String [] { "*.pkg" }, -1, ThreshHoldUseModifiedLaterThan, false);

				InternetFileNames = Basics.GetFileInfoEntriesFromDirectory
					(Path.Combine (FilePathToInternetPicturesForPkgs, TableName),
					 new String [] { "*.jpg" }, -1, ThreshHoldUseModifiedLaterThan, false);

				}
			catch (Exception Excp)
				{
				Basics.ReportErrorToEventViewer ("DataWrapper.GetNotActuallPkgFileEntryData",
					"Fehler beim heraussuchen der Files aus \r\n"
					+ Path.Combine (FilePathToActuallPkgs, TableName) + "\r\n"
					+ Path.Combine (FilePathToOldPkgs, TableName) + "\r\n"
					+ Path.Combine (FilePathToInternetPicturesForPkgs, TableName) + "Fehler:\r\n"
					+ Excp.ToString ());
				return null;
				}

			try
				{
				foreach (DataRow KarteiRow in ActiveKarteiEntries.Rows)
					{
					String KerteiID = KarteiRow ["ID"].ToString ().ToLower ();
					if (!Result.ContainsKey (KerteiID))
						Result [KerteiID] = new PkgFileEntryData ()
						{
							TableName = TableName,
							ID = KerteiID,
							LastModifyTimeStampInTable = ((KarteiRow ["ModifyTimeStamp"] == Convert.DBNull) ?
								DateTime.Parse ("2000-01-01") : Convert.ToDateTime (KarteiRow ["ModifyTimeStamp"]))
						};
					}

				foreach (FileInfo Info in OldTablePkgFileNames)
					{
					String ID = Path.GetFileNameWithoutExtension (Info.FullName).ToLower ();
					if (Result.ContainsKey (ID))
						Result [ID].OldTablePkgFileInfo = Info;
					else
						Result [ID] = new PkgFileEntryData () { OldTablePkgFileInfo = Info };
					}

				foreach (FileInfo Info in ActuallTablePkgFileNames)
					{
					String ID = Path.GetFileNameWithoutExtension (Info.FullName).ToLower ();
					if (Result.ContainsKey (ID))
						Result [ID].ActuallTablePkgFileInfo = Info;
					else
						Result [ID] = new PkgFileEntryData () { ActuallTablePkgFileInfo = Info };
					}

				foreach (FileInfo Info in InternetFileNames)
					{
					String FileName = Path.GetFileNameWithoutExtension (Info.FullName).ToLower ();
					String ID = FileName.Substring (11, 36).ToLower( );
					bool IsThumb = (FileName.IndexOf ("_thumb", StringComparison.InvariantCultureIgnoreCase) != -1);
					if (Result.ContainsKey (ID))
						{
						if (IsThumb)
							Result [ID].InternetThumbFileInfo = Info;
						else
							Result [ID].InternetFileInfo = Info;
						}
					else
						{
						if (IsThumb)
							Result [ID] = new PkgFileEntryData () { InternetThumbFileInfo = Info };
						else
							Result [ID] = new PkgFileEntryData () { InternetFileInfo = Info };
						}
					}

				}
			catch (Exception Excp)
				{
				Basics.ReportErrorToEventViewer ("DataWrapper.GetNotActuallPkgFileEntryData",
					"Fehler beim befüllen der FileEntryData \r\n"
					+ Path.Combine (FilePathToActuallPkgs, TableName) + "\r\n"
					+ Path.Combine (FilePathToOldPkgs, TableName) + "\r\n"
					+ Path.Combine (FilePathToInternetPicturesForPkgs, TableName) + "Fehler:\r\n"
					+ Excp.ToString ());
				return null;
				}
			
			Dictionary<String,Int32> ErrorCounter = new Dictionary<String, Int32> ();
			List<String> EntriesToDelete = new List<string> ();
			try
				{
				foreach (String Key in Result.Keys)
					{
					PkgFileEntryData Entry = Result [Key];
					try
						{
						Entry.ID = Key;
						Entry.TableName = TableName;
						if (Entry.IsActuall ())
							EntriesToDelete.Add (Key);
						else
							{
							if (ErrorCounter.ContainsKey (Enum.GetName (typeof (PkgFileEntryData.ErrorReasons), Entry.Reason)))
								ErrorCounter [Enum.GetName (typeof (PkgFileEntryData.ErrorReasons), Entry.Reason)]++;
							else
								ErrorCounter [Enum.GetName (typeof (PkgFileEntryData.ErrorReasons), Entry.Reason)] = 1;
							}
						}
					catch (Exception Excp)
						{
						Basics.ReportErrorToEventViewer ("DataWrapper.GetNotActuallPkgFileEntryData",
							"Fehler beim Delete von Key \r\n\"" + Key + "\"\r\nFehler:\r\n"
							+ Excp.ToString ());
						return null;
						}
					}
				foreach (String KeyToDelete in EntriesToDelete)
					Result.Remove (KeyToDelete);

				}
			catch (Exception OuterExcp)
				{
				Basics.ReportErrorToEventViewer ("DataWrapper.GetNotActuallPkgFileEntryData",
					"Fehler bei Loop\r\nFehler:\r\n"
					+ OuterExcp.ToString ());
				return null;
				}
			return Result;
			}
Exemple #3
0
		public bool CheckPackageAgainstInternetPictures (PkgFileEntryData Entry)
			{
			switch (Entry.Reason)
				{
				case PkgFileEntryData.ErrorReasons.MissingInternetFiles:
				case PkgFileEntryData.ErrorReasons.ThumbsAndPicturesMismatch:
				case PkgFileEntryData.ErrorReasons.PackageYoungerThanPictures:
					return RefreshInternetPictures (Entry);
					break;
				case PkgFileEntryData.ErrorReasons.MissingPackages:
				case PkgFileEntryData.ErrorReasons.PackageOlderThanTableOrNoTableEntry:
					return false;
				default:
					return false;
				}

			}
Exemple #4
0
		public Dictionary<String, PkgFileEntryData> GetPkgFileEntryData
					(Dictionary<String, List<FileInfo>> ExistingInternetJPGFileInfos, DataTable ActiveKarteiEntries,
					String TableName, DateTime ThreshHoldUseModifiedLaterThan)
			{
			Dictionary<String, PkgFileEntryData> CumulativeEntriesForTable = new Dictionary<string, PkgFileEntryData> ();
			List<FileInfo> ActuallTablePkgFileNames = null;
			List<FileInfo> OldTablePkgFileNames = null;
			List<FileInfo> InternetFileNames = null;
			try
				{
				ActuallTablePkgFileNames = Basics.GetFileInfoEntriesFromDirectory
					(Path.Combine (FilePathToActuallPkgs, TableName),
					 new String [] { "*.pkg" }, -1, ThreshHoldUseModifiedLaterThan, false);
				OldTablePkgFileNames = Basics.GetFileInfoEntriesFromDirectory
					(Path.Combine (FilePathToOldPkgs, TableName),
					 new String [] { "*.pkg" }, -1, ThreshHoldUseModifiedLaterThan, false);

				}
			catch (Exception Excp)
				{
				Basics.ReportErrorToEventViewer ("DataWrapper.GetNotActuallPkgFileEntryData",
					"Fehler beim heraussuchen der Files aus \r\n"
					+ Path.Combine (FilePathToActuallPkgs, TableName) + "\r\n"
					+ Path.Combine (FilePathToOldPkgs, TableName) + "\r\n"
					+ Path.Combine (FilePathToInternetPicturesForPkgs, TableName) + "Fehler:\r\n"
					+ Excp.ToString ());
				return null;
				}

			try
				{
				foreach (DataRow KarteiRow in ActiveKarteiEntries.Rows)	// fill all from DataBase Table
					{
					String KarteiID = KarteiRow ["ID"].ToString ().ToLower ();
					int NumberOfPages = 0;
					if (KarteiRow ["NumberOfPages"] != Convert.DBNull)
						NumberOfPages = Convert.ToInt32 (KarteiRow ["NumberOfPages"]);
					//if (NumberOfPages == -1)
					//    continue;
					String KarteiNameID = KarteiRow ["NameID"].ToString ();
					if (!CumulativeEntriesForTable.ContainsKey (KarteiID))
						CumulativeEntriesForTable [KarteiID] = new PkgFileEntryData ()
						{
							TableName = TableName,
							ID = KarteiID,
							NameID = KarteiNameID,
							LastModifyTimeStampInTable = ((KarteiRow ["ModifyTimeStamp"] == Convert.DBNull) ?
								DateTime.Parse ("2000-01-01") : Convert.ToDateTime (KarteiRow ["ModifyTimeStamp"]))
						};
					}

				foreach (FileInfo Info in ActuallTablePkgFileNames)		// insert Entries from actuall Packages
					{
					String ID = Path.GetFileNameWithoutExtension (Info.FullName).ToLower ();
					if (CumulativeEntriesForTable.ContainsKey (ID))
						CumulativeEntriesForTable [ID].ActuallTablePkgFileInfo = Info;
					else
						CumulativeEntriesForTable[ID] = new PkgFileEntryData()
							{
								ActuallTablePkgFileInfo = Info,
								TableName = TableName,
								ID = ID,
								Reason = PkgFileEntryData.ErrorReasons.OldPackageFileButNoTable,
								LastModifyTimeStampInTable = DateTime.Parse("2000-01-01")
							};
					}

				foreach (FileInfo Info in OldTablePkgFileNames)		// insert Entries from old Packages
					{
					String ID = Path.GetFileNameWithoutExtension(Info.FullName).ToLower();
					if (CumulativeEntriesForTable.ContainsKey(ID))
						CumulativeEntriesForTable[ID].OldTablePkgFileInfo = Info;
					else
						CumulativeEntriesForTable[ID] = new PkgFileEntryData()
						{
							OldTablePkgFileInfo = Info,
							TableName = TableName,
							ID = ID,
							Reason = PkgFileEntryData.ErrorReasons.OldPackageFileButNoTable,
							LastModifyTimeStampInTable = DateTime.Parse("2000-01-01")

						};
					}

				foreach (PkgFileEntryData Entry in CumulativeEntriesForTable.Values)
					{
					if (String.IsNullOrEmpty (Entry.ID))
						continue;
					String SubDirectoryName = Basics.GetSegmentedDirFileNameFromGuid (Entry.ID).Substring (0, 2);
					if (!ExistingInternetJPGFileInfos.ContainsKey (SubDirectoryName))
						continue;
					List<FileInfo> FileInfos = ExistingInternetJPGFileInfos [SubDirectoryName];
					foreach (FileInfo EntryInternetFileInfo in FileInfos)
						{
						if (EntryInternetFileInfo.Name.IndexOf (Entry.ID, StringComparison.InvariantCultureIgnoreCase) != -1)
							{
							if (EntryInternetFileInfo.Name.IndexOf ("_thumb", StringComparison.InvariantCultureIgnoreCase) == -1)
								Entry.InternetFileInfo = EntryInternetFileInfo;
							else
								Entry.InternetThumbFileInfo = EntryInternetFileInfo;
							}
						}
					foreach (FileInfo EntryToDelete in Entry.InternetFileInfos.Values)		// remove found entries for performance usage
						{
						ExistingInternetJPGFileInfos [SubDirectoryName].Remove (EntryToDelete);
						}
					foreach (FileInfo EntryToDelete in Entry.InternetThumbFileInfos.Values) // remove found entries for performance usage
						{
						ExistingInternetJPGFileInfos [SubDirectoryName].Remove (EntryToDelete);
						}
					}

				}
			catch (Exception Excp)
				{
				Basics.ReportErrorToEventViewer ("DataWrapper.GetNotActuallPkgFileEntryData",
					"Fehler beim befüllen der FileEntryData \r\n"
					+ Path.Combine (FilePathToActuallPkgs, TableName) + "\r\n"
					+ Path.Combine (FilePathToOldPkgs, TableName) + "\r\n"
					+ Path.Combine (FilePathToInternetPicturesForPkgs, TableName) + "Fehler:\r\n"
					+ Excp.ToString ());
				return null;
				}

			Dictionary<String, Int32> ErrorCounter = new Dictionary<String, Int32> ();
			List<String> EntriesToDelete = new List<string> ();
			try
				{
				foreach (String Key in CumulativeEntriesForTable.Keys)
					{
					PkgFileEntryData Entry = CumulativeEntriesForTable [Key];
					try
						{
						Entry.ID = Key;
						Entry.TableName = TableName;
						if (Entry.IsActuall ())
							EntriesToDelete.Add (Key);
						else
							{
							if (ErrorCounter.ContainsKey (Enum.GetName (typeof (PkgFileEntryData.ErrorReasons), Entry.Reason)))
								ErrorCounter [Enum.GetName (typeof (PkgFileEntryData.ErrorReasons), Entry.Reason)]++;
							else
								ErrorCounter [Enum.GetName (typeof (PkgFileEntryData.ErrorReasons), Entry.Reason)] = 1;
							}
						}
					catch (Exception Excp)
						{
						Basics.ReportErrorToEventViewer ("DataWrapper.GetNotActuallPkgFileEntryData",
							"Fehler beim Delete von Key \r\n\"" + Key + "\"\r\nFehler:\r\n"
							+ Excp.ToString ());
						continue;
						}
					}
				foreach (String KeyToDelete in EntriesToDelete)
					CumulativeEntriesForTable.Remove (KeyToDelete);

				}
			catch (Exception OuterExcp)
				{
				Basics.ReportErrorToEventViewer ("DataWrapper.GetNotActuallPkgFileEntryData",
					"Fehler bei Loop\r\nFehler:\r\n"
					+ OuterExcp.ToString ());
				return null;
				}
			return CumulativeEntriesForTable;
			}