public CmsLocalFileOnDiskMetaItem[] FetchAllForFile(CmsLocalFileOnDisk resource) { string sql = "SELECT AutoIncId, ResourceId, ResourceRevisionNumber, `Name`, `Value` from resourceitemmetadata "; sql += " WHERE " + DBDialect.isNull("Deleted") + " AND ResourceId = " + resource.ResourceId + " AND ResourceRevisionNumber = " + resource.RevisionNumber + " ; "; List <CmsLocalFileOnDiskMetaItem> arrayList = new List <CmsLocalFileOnDiskMetaItem>(); DataSet ds = this.RunSelectQuery(sql); if (this.hasRows(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { CmsLocalFileOnDiskMetaItem item = new CmsLocalFileOnDiskMetaItem(); item.autoincid = Convert.ToInt32(dr["AutoIncId"]); item.resourceid = Convert.ToInt32(dr["ResourceId"]); item.resourcerevisionnumber = Convert.ToInt32(dr["ResourceRevisionNumber"]); item.name = (dr["Name"]).ToString(); item.itemvalue = (dr["Value"]).ToString(); arrayList.Add(item); } // foreach row } // if there is data return(arrayList.ToArray()); } // getAll
public bool Insert(CmsLocalFileOnDisk item) { if (item.ResourceId < 0) { int lastResId = getLastExistingResourceId(); if (lastResId < 0) { item.ResourceId = 0; } else { item.ResourceId = lastResId + 1; } } if (item.revisionnumber < 0) { item.revisionnumber = 1; } int lastModifiedBy = -1; if (CmsContext.currentUserIsLoggedIn) { lastModifiedBy = CmsContext.currentWebPortalUser.uid; } string sql = "INSERT INTO resourceitems "; sql += "(ResourceId, RevisionNumber, Filename, FilePath, FileDirectory, FileSize, FileTimestamp, MimeType, ModifiedBy, ModificationDate)"; sql += " VALUES ( "; sql += item.resourceid.ToString() + ", "; sql += item.revisionnumber.ToString() + ", "; sql += "'" + dbEncode(item.filename) + "'" + ", "; sql += "'" + dbEncode(item.filepath) + "'" + ", "; sql += "'" + dbEncode(item.fileDirectory) + "'" + ", "; sql += item.filesize.ToString() + ", "; sql += "" + dbEncode(item.filetimestamp) + " " + ", "; sql += "'" + dbEncode(item.mimetype) + "'" + ", "; sql += "'" + dbEncode(lastModifiedBy.ToString()) + "'" + ", "; sql += "" + dbEncode(DateTime.Now) + " " + " "; sql += " ); "; int newId = this.RunInsertQuery(sql); if (newId > -1) { item.autoincid = newId; return(CmsLocalFileOnDiskMetaItem.BulkInsert(item, item.MetaData)); } return(false); } // Insert
/// <summary> /// returns a blank CmsResource object if not found /// </summary> /// <param name="ResourceId"></param> /// <param name="RevisionNumber"></param> /// <returns></returns> public CmsLocalFileOnDisk Get(int ResourceId, int RevisionNumber) { string sql = "SELECT AutoIncId, ResourceId, RevisionNumber, Filename, FilePath, FileDirectory, FileSize, FileTimestamp, MimeType, ModifiedBy, ModificationDate from resourceitems r "; sql += " WHERE ResourceId = " + ResourceId.ToString() + " AND RevisionNumber = " + RevisionNumber.ToString() + " "; DataSet ds = this.RunSelectQuery(sql); if (this.hasSingleRow(ds)) { DataRow dr = ds.Tables[0].Rows[0]; CmsLocalFileOnDisk res = ResourceFromDataRow(dr); CmsLocalFileOnDiskMetaItem[] metaItems = CmsLocalFileOnDiskMetaItem.FetchAll(res); res.MetaData = metaItems; return(res); } return(new CmsLocalFileOnDisk()); } // Get
} // Insert public bool Update(CmsLocalFileOnDiskMetaItem item) { string sql = "UPDATE resourceitemmetadata SET "; sql += "ResourceId = " + item.resourceid.ToString() + ", "; sql += "ResourceRevisionNumber = " + item.resourcerevisionnumber.ToString() + ", "; sql += "`Name` = " + "'" + dbEncode(item.name) + "'" + ", "; sql += "`Value` = " + "'" + dbEncode(item.itemvalue) + "'" + " "; sql += " WHERE AutoIncId = " + item.autoincid.ToString(); sql += " ; "; int numAffected = this.RunUpdateQuery(sql); if (numAffected < 0) { return(false); } return(true); } // Update
public bool Insert(CmsLocalFileOnDiskMetaItem item) { string sql = "INSERT INTO resourceitemmetadata "; sql += "(ResourceId, ResourceRevisionNumber, `Name`, `Value`, Deleted)"; sql += " VALUES ( "; sql += item.resourceid.ToString() + ", "; sql += item.resourcerevisionnumber.ToString() + ", "; sql += "'" + dbEncode(item.name) + "'" + ", "; sql += "'" + dbEncode(item.itemvalue) + "'" + " "; sql += " ); "; int newId = this.RunInsertQuery(sql); if (newId > -1) { item.autoincid = newId; return(true); } return(false); } // Insert
/// <summary> /// creates a new CmsResource object from an image file /// </summary> /// <param name="imageFilename"></param> /// <returns></returns> public static CmsLocalImageOnDisk CreateFomImageFile(string imageFilename) { CmsLocalImageOnDisk ret = new CmsLocalImageOnDisk(); ret.FileName = Path.GetFileName(imageFilename); ret.FilePath = imageFilename; ret.FileDirectory = Path.GetDirectoryName(imageFilename); ret.MimeType = PageUtils.MimeTypeLookup(Path.GetExtension(imageFilename)); if (File.Exists(imageFilename)) { FileInfo fi = new FileInfo(imageFilename); ret.FileSize = fi.Length; ret.FileTimestamp = fi.LastWriteTime; MetaDataItem[] metaData = MetaDataUtils.GetFromImageFile(imageFilename); ret.MetaData = CmsLocalFileOnDiskMetaItem.FromMetaDataItems(ret, metaData); } return(ret); } // CreateFromImageFile
/// <summary> /// creates a new CmsResource object from an Adobe file (is PDF, PSD, AI) /// </summary> /// <param name="imageFilename"></param> /// <returns></returns> public static CmsLocalFileOnDisk CreateFomAdobeDocument(string adobeFilename) { CmsLocalFileOnDisk ret = new CmsLocalFileOnDisk(); ret.filename = Path.GetFileName(adobeFilename); ret.filepath = adobeFilename; ret.fileDirectory = Path.GetDirectoryName(adobeFilename); ret.MimeType = PageUtils.MimeTypeLookup(Path.GetExtension(adobeFilename)); if (File.Exists(adobeFilename)) { FileInfo fi = new FileInfo(adobeFilename); ret.FileSize = fi.Length; ret.FileTimestamp = fi.LastWriteTime; MetaDataItem[] metaData = MetaDataUtils.GetXmpData(adobeFilename); ret.MetaData = CmsLocalFileOnDiskMetaItem.FromMetaDataItems(ret, metaData); } return(ret); }
} // Get public CmsLocalFileOnDisk GetResourceByFilename(string filename) { string sql = "select AutoIncId, ResourceId, RevisionNumber, Filename, FilePath, FileDirectory, FileSize, FileTimestamp, MimeType, ModifiedBy, ModificationDate from resourceitems "; sql += " where LOWER(FilePath) = '" + dbEncode(filename.ToLower()) + "' AND deleted is null order by ResourceId, RevisionNumber DESC ; "; DataSet ds = this.RunSelectQuery(sql); if (this.hasRows(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { CmsLocalFileOnDisk res = ResourceFromDataRow(dr); int lastExistingRevNum = getLastExistingRevisionNumber(res.ResourceId); if (lastExistingRevNum == res.RevisionNumber) { res.MetaData = CmsLocalFileOnDiskMetaItem.FetchAll(res); return(res); } } // foreach } return(new CmsLocalFileOnDisk()); }
public static CmsLocalFileOnDisk CreateFromFile(string filenameOnDisk) { CmsLocalFileOnDisk ret = new CmsLocalFileOnDisk(); ret.filename = Path.GetFileName(filenameOnDisk); ret.filepath = filenameOnDisk; ret.fileDirectory = Path.GetDirectoryName(filenameOnDisk); ret.MimeType = PageUtils.MimeTypeLookup(Path.GetExtension(filenameOnDisk)); if (File.Exists(filenameOnDisk)) { FileInfo fi = new FileInfo(filenameOnDisk); ret.FileSize = fi.Length; ret.FileTimestamp = fi.LastWriteTime; MetaDataItem[] metaData = new MetaDataItem[0]; if (MetaDataUtils.CanExtractImageMetaData(filenameOnDisk)) { metaData = MetaDataUtils.GetFromImageFile(filenameOnDisk); } else if (MetaDataUtils.CanExtractOLEMetaData(filenameOnDisk)) { metaData = MetaDataUtils.GetFromOLEDocument(filenameOnDisk); } else if (MetaDataUtils.CanExtractXmpData(filenameOnDisk)) { metaData = MetaDataUtils.GetXmpData(filenameOnDisk); } ret.MetaData = CmsLocalFileOnDiskMetaItem.FromMetaDataItems(ret, metaData); } return(ret); }
protected CmsLocalFileOnDisk[] ResourcesWithMetaItemsFromDataRows(DataRowCollection rows) { Dictionary <int, CmsLocalFileOnDisk> resources = new Dictionary <int, CmsLocalFileOnDisk>(); foreach (DataRow dr in rows) { int resId = Convert.ToInt32(dr["ResourceId"]); CmsLocalFileOnDisk item; if (resources.ContainsKey(resId)) { item = resources[resId]; } else { item = new CmsLocalFileOnDisk(); item.autoincid = Convert.ToInt32(dr["AutoIncId"]); item.resourceid = resId; item.revisionnumber = Convert.ToInt32(dr["RevisionNumber"]); item.filename = (dr["Filename"]).ToString(); item.filepath = (dr["FilePath"]).ToString(); item.fileDirectory = (dr["FileDirectory"]).ToString(); item.filesize = Convert.ToInt64(dr["FileSize"]); item.filetimestamp = Convert.ToDateTime(dr["FileTimestamp"]); item.mimetype = (dr["MimeType"]).ToString(); // -- note: if the following line causes an exception, flush the resourceitems and resourceitemmetadata tables. // ie: run the following SQL: "truncate table resourceitems; truncate table resourceitemmetadata;" // all captions will be lost and will need to be re-created. item.modifiedby = Convert.ToInt32(dr["ModifiedBy"]); item.modificationdate = Convert.ToDateTime(dr["ModificationDate"]); } if (dr["metaId"] != DBNull.Value) { CmsLocalFileOnDiskMetaItem metaItem = new CmsLocalFileOnDiskMetaItem(); metaItem.autoincid = Convert.ToInt32(dr["metaId"]); metaItem.ResourceId = resId; metaItem.ResourceRevisionNumber = item.RevisionNumber; metaItem.Name = dr["metaName"].ToString(); metaItem.ItemValue = dr["metaValue"].ToString(); item.metaData.Add(metaItem); } if (!resources.ContainsKey(resId)) { resources.Add(resId, item); } } // foreach return((new List <CmsLocalFileOnDisk>(resources.Values)).ToArray()); }