141 lines
3.9 KiB
C#
141 lines
3.9 KiB
C#
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
|
|
/// <summary>
|
|
///Retrieves stats about files stored
|
|
///in the AyaNova database for diagnosis and administrative purposes
|
|
/// </summary>
|
|
[Serializable]
|
|
public class AyaFileStats : ReadOnlyBase
|
|
{
|
|
|
|
#region Attributes
|
|
private decimal mFileCount;
|
|
private decimal mTotalStoredFileData;
|
|
private decimal mTotalFileSize;
|
|
|
|
/// <summary>
|
|
/// Number of files stored in database
|
|
/// </summary>
|
|
public decimal FileCount
|
|
{ get { return mFileCount; } }
|
|
|
|
/// <summary>
|
|
/// Total bytes actually stored in database for files
|
|
/// </summary>
|
|
public decimal TotalStoredFileData
|
|
{ get { return mTotalStoredFileData; } }
|
|
|
|
/// <summary>
|
|
/// Total size of all files stored in the database if they were uncompressed
|
|
/// </summary>
|
|
public decimal TotalFileSize
|
|
{ get { return mTotalFileSize; } }
|
|
|
|
/// <summary>
|
|
/// Stats formatted in one UI friendly string for direct display
|
|
/// </summary>
|
|
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
|
|
|
|
/// <summary>
|
|
/// Private constructor to prevent direct instantiation
|
|
/// </summary>
|
|
private AyaFileStats()
|
|
{
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region Static methods
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// Fetch
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static AyaFileStats GetStats()
|
|
{
|
|
|
|
return (AyaFileStats)DataPortal.Fetch(new Criteria());
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region DAL DATA ACCESS
|
|
///
|
|
/// <param Bool="Criteria"></param>
|
|
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
|
|
/// <summary>
|
|
/// Criteria for identifying existing object
|
|
/// </summary>
|
|
[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 |