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