using System; using System.Data; using CSLA.Data; using GZTW.Data; using CSLA; using System.Threading; using CSLA.Security; using System.ComponentModel; namespace GZTW.AyaNova.BLL { //case 73 /// ///Retrieves stats about files stored ///in the AyaNova database for diagnosis and administrative purposes /// [Serializable] public class AyaFileStats : ReadOnlyBase { #region Attributes private decimal mFileCount; private decimal mTotalStoredFileData; private decimal mTotalFileSize; /// /// Number of files stored in database /// public decimal FileCount { get { return mFileCount; } } /// /// Total bytes actually stored in database for files /// public decimal TotalStoredFileData { get { return mTotalStoredFileData; } } /// /// Total size of all files stored in the database if they were uncompressed /// public decimal TotalFileSize { get { return mTotalFileSize; } } /// /// Stats formatted in one UI friendly string for direct display /// public string Stats { //All stats formatted into one neat string get { return "AyaFile stats - Files: " + mFileCount.ToString() + " Total stored file data: " + AyaBizUtils.FileSizeDisplay(mTotalStoredFileData); } } #endregion #region Constructor /// /// Private constructor to prevent direct instantiation /// private AyaFileStats() { } #endregion #region Static methods /// /// Fetch /// /// public static AyaFileStats GetStats() { return (AyaFileStats)DataPortal.Fetch(new Criteria()); } #endregion #region DAL DATA ACCESS /// /// protected override void DataPortal_Fetch(object Criteria) { //case 963 improved null handling //case 1980 - arithmetic overflow bug if (DBUtil.DB.DBType == DataBaseType.FireBird) { mTotalStoredFileData = DBUtil.ScalarToDecimal(DBUtil.GetScalarFromSQLString("SELECT SUM(AFOBJECTSIZE) FROM AFILE")); mTotalFileSize = DBUtil.ScalarToDecimal(DBUtil.GetScalarFromSQLString("SELECT SUM(AFILESIZE) FROM AFILE")); mFileCount = DBUtil.ScalarToDecimal(DBUtil.GetScalarFromSQLString("SELECT COUNT(*) FROM AFILE")); } else { mTotalStoredFileData = DBUtil.ScalarToDecimal(DBUtil.GetScalarFromSQLString("SELECT SUM(CAST(AFOBJECTSIZE AS BIGINT)) FROM AFILE")); mTotalFileSize = DBUtil.ScalarToDecimal(DBUtil.GetScalarFromSQLString("SELECT SUM(CAST(AFILESIZE AS BIGINT)) FROM AFILE")); mFileCount = DBUtil.ScalarToDecimal(DBUtil.GetScalarFromSQLString("SELECT COUNT(*) FROM AFILE")); } } #endregion #region criteria /// /// Criteria for identifying existing object /// [Serializable] private class Criteria { // public Guid ID; // public string Name; public Criteria(/*Guid _ID, string _Name*/) { //ID = _ID; // Name = _Name; } } #endregion }//end class }//end namespace GZTW.AyaNova.BLL