Files
ayanova7/source/bizobjects/AyaLib/GZTW.AyaNova.BLL/AyaFileStats.cs
2018-06-29 19:47:36 +00:00

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