コード例 #1
0
		private int  CreateOrCheckInternetJPGPicturesFor (String WPMediaRoot, GraphicsHandling GraphicsHandler)
			{
			if (GraphicsHandler == null)
				return 0;
			if (GraphicsHandler.ActuallReadableContentRow == null)
				{
				return 0;
				}
			String TableName = GraphicsHandler.ActuallTableName;
			String ID = GraphicsHandler.ActuallReadableContentRow ["ID"].ToString ();
			List<System.Windows.Media.Imaging.BitmapSource> PictureList = GraphicsHandler.GetFinalPictures ();
			String SubDirectoryName = WMB.Basics.GetSegmentedDirFileNameFromGuid (ID).Substring (0, 2);
			String RootDirectory = Path.Combine (Path.Combine (WPMediaRoot,
								 CVM.CommonValues.XML_AUTO_CONTENT_INTERNET_SOURCE), SubDirectoryName);
			if (!Directory.Exists (RootDirectory))
				Directory.CreateDirectory (RootDirectory);

			List<String> ExistingFiles = WMB.Basics.GetFilesFromDirectory (RootDirectory, new String [] {ID + "*.jpg"}, 1);
			foreach (String PictureNameToDelete in ExistingFiles)
				WMB.Basics.SecureFileDelete(PictureNameToDelete);

			int PictureIndex = 0;
			foreach (BitmapSource Picture in PictureList)
				{
				List<String> Names = GetNamesForInternetStandBildTV (RootDirectory, ID, PictureIndex);
				JpegBitmapEncoder JpgEncoder = new JpegBitmapEncoder();
				JpgEncoder.Frames.Add (BitmapFrame.Create (Picture));
				if (File.Exists (Names [0]))
					{
					MemoryStream PictureStream = new MemoryStream ();
					JpgEncoder.Save (PictureStream);
					if (WMB.Basics.IsTheContentEqual (Names [0], PictureStream))
						{
						if (!File.Exists (Names [1]))
							CVM.XAMLHandling.ResizePicture(Names[0], Names[1],
									200, 100, true, false);
						PictureIndex++;
						continue;
						}
					}
				JpegBitmapEncoder JpgDiskEncoder = new JpegBitmapEncoder ();
				JpgDiskEncoder.Frames.Add (BitmapFrame.Create (Picture));

				Stream Writer = File.Open (Names [0], FileMode.Create, FileAccess.Write);
				JpgDiskEncoder.Save (Writer);
				Writer.Close ();
				CVM.XAMLHandling.ResizePicture (Names [0], Names [1],
						200, 100, true, false);
				PictureIndex++;
				}
			PictureList.Clear ();

			FreeDisposeableElementsCall ();
			return PictureIndex;
			}
コード例 #2
0
	public static bool CreateOrModifyAsStandBildLayout (String TableName, System.Guid ID, String StandBildLayoutNameID)
		{
		WCFStandardsNS.WCFStandards DataAccess = new WCFStandards ();
		DataAccess.DefaultConnectionStringName = "WPMediaAddOnDataConnectionString";
		CVM.GraphicsHandling GraphicsHandler = new GraphicsHandling(Basics.GetLocalWPMediaRoot ());
		Object Pkg = GraphicsHandler.GetInstatiatedPackage (TableName, ID.ToString ());
		List<BitmapSource> CreatedPictures = GraphicsHandler.GetFinalPictures ();
		int SubEntryIndex = 0;
		DataSet ExistingMaterials = DataAccess.GetCommonDataSet ("Select " + MATERIALIEN_ITEM_LIST + " from Materialien "
		    + "where Tabelle = '" + TableName + "' and TabelleID = '" + ID.ToString () + "' order by SubEntryID");
		if (ExistingMaterials.Tables ["Materialien"].Rows.Count > 0)
			{
			int PictureIndex = 0;
			List<DataRow> RowsToDelete = new List<DataRow> ();
			foreach (DataRow Existing in ExistingMaterials.Tables ["Materialien"].Rows)
				{
				PictureIndex = Convert.ToInt32 (Existing ["SubEntryID"].ToString ().Replace (LAYOUT_PICTURE_PREFIX, ""));
				if ((PictureIndex - 1) < CreatedPictures.Count)
					{
					Byte [] JpegContent = GetJpgByteArrayFromBitmapSource (CreatedPictures [PictureIndex - 1]);
					String UpdateStatement = String.Format ("Update Materialien "
						+ "set NameID = '{0}', Tabelle = '{1}', TabelleID = '{2}', Typ = '{3}', SubEntryID = '{4}', "
						+ "BlobLength = {5}, BlobContent = @BlobParam, "
						+ "ModifyTimeStamp = '{6}', ProcessingStatus = '{7}', CreatedBy = '{8}' where ID = '{9}'",
						StandBildLayoutNameID, TableName, ID.ToString (), "",
						String.Format (LAYOUT_PICTURE_PREFIX_FORMAT, PictureIndex), JpegContent.Length,
						DateTime.Now.ToString (Basics.ISO_DATE_TIME_FORMAT), "",
						WMB.WPMediaApplicationState.Instance.Properties ["UserName"].ToString (), Existing ["ID"].ToString ());
					DataAccess.SetCommonBlob (UpdateStatement, JpegContent);
					}
				else
					{
					RowsToDelete.Add (Existing);
					}
				}
			foreach (DataRow ToDelete in RowsToDelete)
				{
				String DeleteStatement = "Delete Materialien where ID = '" + ToDelete ["ID"].ToString () + "'";
				DataAccess.RunSQLBatch (DeleteStatement);
				}
			while ((PictureIndex) < CreatedPictures.Count)
				{
				System.Guid PictureID = System.Guid.NewGuid ();
				Byte [] JpegContent = GetJpgByteArrayFromBitmapSource (CreatedPictures [PictureIndex]);
				String InsertStatement = String.Format ("Insert into Materialien "
					+ "(ID, NameID, Tabelle, TabelleID, Typ, SubEntryID, BlobLength, BlobContent, ModifyTimeStamp, ProcessingStatus, CreatedBy) "
					+ "Values ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', {6}, @BlobParam, '{7}', '{8}', '{9}')",
					PictureID.ToString (), StandBildLayoutNameID, TableName, ID.ToString (), "",
					String.Format (LAYOUT_PICTURE_PREFIX_FORMAT, PictureIndex), JpegContent.Length,
					DateTime.Now.ToString (Basics.ISO_DATE_TIME_FORMAT), "",
					WMB.WPMediaApplicationState.Instance.Properties ["UserName"].ToString ());
				DataAccess.SetCommonBlob (InsertStatement, JpegContent);
				PictureIndex++;
				}
			}
		else
			{
			
			foreach (BitmapSource Picture in CreatedPictures)
				{
				System.Guid PictureID = System.Guid.NewGuid (); 
				Byte [] JpegContent = GetJpgByteArrayFromBitmapSource (Picture);
				String InsertStatement = String.Format ("Insert into Materialien "
				    + "(ID, NameID, Tabelle, TabelleID, Typ, SubEntryID, BlobLength, BlobContent, ModifyTimeStamp, ProcessingStatus, CreatedBy) Values ("
				    + "'{0}', '{1}', '{2}', '{3}', '{4}', '{5}', {6}, @BlobParam, '{7}', '{8}', '{9}')",
					PictureID.ToString (), StandBildLayoutNameID, TableName, ID.ToString (), "",
					String.Format (LAYOUT_PICTURE_PREFIX_FORMAT, SubEntryIndex + 1), JpegContent.Length,
				    DateTime.Now.ToString (Basics.ISO_DATE_TIME_FORMAT), "",
				    WMB.WPMediaApplicationState.Instance.Properties ["UserName"].ToString ());
				DataAccess.SetCommonBlob (InsertStatement, JpegContent);
				SubEntryIndex++;
				}
			
			}

		return true;
		}