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; }
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; }