using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using Csla; using Csla.Data; using System.ComponentModel; namespace VEPROMS.CSLA.Library { // B2022-047 - refresh the Content/Text field for table. Get all grids in database. public class CriteriaAllGridIds { bool _AllGridIds; public bool AllGridIds { get { return _AllGridIds; } set { _AllGridIds = value; } } public CriteriaAllGridIds(bool allGridIds) { _AllGridIds = allGridIds; } } [Serializable()] [TypeConverter(typeof(FormatInfoListConverter))] public partial class GridInfoList : ReadOnlyListBase { #region Log4Net private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); #endregion internal new IList Items { get { return base.Items; } } private bool _Disposed = false; private static int _CountCreated = 0; private static int _CountDisposed = 0; private static int _CountFinalized = 0; private static int IncrementCountCreated { get { return ++_CountCreated; } } private int _CountWhenCreated = IncrementCountCreated; public static int CountCreated { get { return _CountCreated; } } public static int CountNotDisposed { get { return _CountCreated - _CountDisposed; } } public static int CountNotFinalized { get { return _CountCreated - _CountFinalized; } } ~GridInfoList() { _CountFinalized++; } public void Dispose() { if (_Disposed) return; _CountDisposed++; _Disposed = true; } public static GridInfoList _GridInfoList = null; /// /// Return a list of all GridInfo. Commented out - GridInfoList was added to fix B2022-047. Have this code here in /// case it is needed in the future. /// //public static GridInfoList Get() //{ // try // { // if (_GridInfoList != null) // return _GridInfoList; // GridInfoList tmp = DataPortal.Fetch(); // _GridInfoList = tmp; // return tmp; // } // catch (Exception ex) // { // throw new DbCslaException("Error on FormatInfoList.Get", ex); // } //} public static List GetIds() { try { List _GridInfoIdList = new List(); try { using (SqlConnection cn = Database.VEPROMS_SqlConnection) { using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "getGridIds"; cm.CommandTimeout = Database.DefaultTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { while (dr.Read()) _GridInfoIdList.Add(dr.GetInt32("ContentID")); } } } } catch (Exception ex) { if (_MyLog.IsErrorEnabled) _MyLog.Error("CriteriaAllGridIds.DataPortal_Fetch", ex); throw new DbCslaException("CriteriaAllGridIds.DataPortal_Fetch", ex); } return _GridInfoIdList; } catch (Exception ex) { throw new DbCslaException("Error on GridInfoList.Get", ex); } } // Commented out - GridInfoList was added to fix B2022-047. Have this code here in // case it is needed in the future. The associated query 'getGrids' does not exist. //private void DataPortal_Fetch() //{ // this.RaiseListChangedEvents = false; // if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] GridInfoList.DataPortal_Fetch", GetHashCode()); // try // { // using (SqlConnection cn = Database.VEPROMS_SqlConnection) // { // using (SqlCommand cm = cn.CreateCommand()) // { // cm.CommandType = CommandType.StoredProcedure; // cm.CommandText = "getGrids"; // cm.CommandTimeout = Database.DefaultTimeout; // using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) // { // IsReadOnly = false; // while (dr.Read()) this.Add(new GridInfo(dr)); // IsReadOnly = true; // } // } // } // } // catch (Exception ex) // { // if (_MyLog.IsErrorEnabled) _MyLog.Error("GridInfoList.DataPortal_Fetch", ex); // throw new DbCslaException("GridInfoList.DataPortal_Fetch", ex); // } // this.RaiseListChangedEvents = true; //} } public partial class GridInfo { public void ResetContent(Grid myGrid) { RefreshFields(myGrid); } public void SetData(string myData) { _Data = myData; RemoveFromCache(this); } public static GridInfo GetNonCached(int contentID) { //if (!CanGetObject()) // throw new System.Security.SecurityException("User not authorized to view a Grid"); try { GridInfo tmp = DataPortal.Fetch(new PKCriteria(contentID)); if (tmp.ErrorMessage == "No Record Found") { tmp.Dispose(); // Clean-up GridInfo tmp = null; } return tmp; } catch (Exception ex) { throw new DbCslaException("Error on GridInfo.Get", ex); } } } }