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
Example #2
0
            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
Example #3
0
            /// <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
Example #6
0
        /// <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
Example #7
0
        /// <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);
        }
Example #8
0
            } // 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());
            }
Example #9
0
        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);
        }
Example #10
0
            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());
            }