diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/Owner.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Owner.cs new file mode 100644 index 00000000..25074da1 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/Owner.cs @@ -0,0 +1,995 @@ +// ======================================================================== +// Copyright 2007 - Volian Enterprises, Inc. All rights reserved. +// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE +// ------------------------------------------------------------------------ +// $Workfile: $ $Revision: $ +// $Author: $ $Date: $ +// +// $History: $ +// ======================================================================== + +using System; +using System.Data; +using System.Data.SqlClient; +using Csla; +using Csla.Data; +using System.Configuration; +using System.IO; +using System.ComponentModel; +using System.Collections.Generic; +using Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// Owner Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(OwnerConverter))] + public partial class Owner : BusinessBase, IDisposable, IVEHasBrokenRules + { + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Refresh + private List _RefreshOwners = new List(); + private void AddToRefreshList(List refreshOwners) + { + if (IsDirty) + refreshOwners.Add(this); + } + private void ClearRefreshList() + { + _RefreshOwners = new List(); + } + private void BuildRefreshList() + { + ClearRefreshList(); + AddToRefreshList(_RefreshOwners); + } + private void ProcessRefreshList() + { + foreach (Owner tmp in _RefreshOwners) + { + OwnerInfo.Refresh(tmp); + } + ClearRefreshList(); + } + #endregion + #region Collection + private static List _CacheList = new List(); + protected static void AddToCache(Owner owner) + { + if (!_CacheList.Contains(owner)) _CacheList.Add(owner); // In AddToCache + } + protected static void RemoveFromCache(Owner owner) + { + while (_CacheList.Contains(owner)) _CacheList.Remove(owner); // In RemoveFromCache + } + private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); + private static void ConvertListToDictionary() + { + while (_CacheList.Count > 0) // Move Owner(s) from temporary _CacheList to _CacheByPrimaryKey + { + Owner tmp = _CacheList[0]; // Get the first Owner + string pKey = tmp.OwnerID.ToString(); + if (!_CacheByPrimaryKey.ContainsKey(pKey)) + { + _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey + } + _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list + _CacheList.RemoveAt(0); // Remove the first Owner + } + } + protected static Owner GetCachedByPrimaryKey(int ownerID) + { + ConvertListToDictionary(); + string key = ownerID.ToString(); + if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; + return null; + } + #endregion + #region Business Methods + private string _ErrorMessage = string.Empty; + public string ErrorMessage + { + get { return _ErrorMessage; } + } + private static int _nextOwnerID = -1; + public static int NextOwnerID + { + get { return _nextOwnerID--; } + } + private int _OwnerID; + [System.ComponentModel.DataObjectField(true, true)] + public int OwnerID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("OwnerID", true); + return _OwnerID; + } + } + private int _SessionID; + public int SessionID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("SessionID", true); + return _SessionID; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("SessionID", true); + if (_SessionID != value) + { + _SessionID = value; + PropertyHasChanged(); + } + } + } + private byte _OwnerType; + public byte OwnerType + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("OwnerType", true); + return _OwnerType; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("OwnerType", true); + if (_OwnerType != value) + { + _OwnerType = value; + PropertyHasChanged(); + } + } + } + private int _OwnerItemID; + public int OwnerItemID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("OwnerItemID", true); + return _OwnerItemID; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("OwnerItemID", true); + if (_OwnerItemID != value) + { + _OwnerItemID = value; + PropertyHasChanged(); + } + } + } + private DateTime _DTSStart = new DateTime(); + public DateTime DTSStart + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DTSStart", true); + return _DTSStart; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("DTSStart", true); + if (_DTSStart != value) + { + _DTSStart = value; + PropertyHasChanged(); + } + } + } + private byte[] _LastChanged = new byte[8];//timestamp + public override bool IsDirty + { + get { return base.IsDirty; } + } + public bool IsDirtyList(List list) + { + return base.IsDirty; + } + public override bool IsValid + { + get { return (IsNew && !IsDirty) ? true : base.IsValid; } + } + public bool IsValidList(List list) + { + return (IsNew && !IsDirty) ? true : base.IsValid; + } + // CSLATODO: Replace base Owner.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current Owner + //public override string ToString() + //{ + // return base.ToString(); + //} + // CSLATODO: Check Owner.GetIdValue to assure that the ID returned is unique + /// + /// Overrides Base GetIdValue - Used internally by CSLA to determine equality + /// + /// A Unique ID for the current Owner + protected override object GetIdValue() + { + return MyOwnerUnique; // Absolutely Unique ID + } + #endregion + #region ValidationRules + [NonSerialized] + private bool _CheckingBrokenRules = false; + public IVEHasBrokenRules HasBrokenRules + { + get + { + if (_CheckingBrokenRules) return null; + if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this; + try + { + _CheckingBrokenRules = true; + IVEHasBrokenRules hasBrokenRules = null; + return hasBrokenRules; + } + finally + { + _CheckingBrokenRules = false; + } + } + } + public BrokenRulesCollection BrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = HasBrokenRules; + if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; + return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); + } + } + protected override void AddBusinessRules() + { + //ValidationRules.AddDependantProperty("x", "y"); + _OwnerExtension.AddValidationRules(ValidationRules); + // CSLATODO: Add other validation rules + } + protected override void AddInstanceBusinessRules() + { + _OwnerExtension.AddInstanceValidationRules(ValidationRules); + // CSLATODO: Add other validation rules + } + // Sample data comparison validation rule + //private bool StartDateGTEndDate(object target, Csla.Validation.RuleArgs e) + //{ + // if (_started > _ended) + // { + // e.Description = "Start date can't be after end date"; + // return false; + // } + // else + // return true; + //} + #endregion + #region Authorization Rules + protected override void AddAuthorizationRules() + { + //CSLATODO: Who can read/write which fields + //AuthorizationRules.AllowRead(OwnerID, ""); + //AuthorizationRules.AllowRead(SessionID, ""); + //AuthorizationRules.AllowRead(OwnerType, ""); + //AuthorizationRules.AllowRead(OwnerItemID, ""); + //AuthorizationRules.AllowRead(DTSStart, ""); + //AuthorizationRules.AllowWrite(SessionID, ""); + //AuthorizationRules.AllowWrite(OwnerType, ""); + //AuthorizationRules.AllowWrite(OwnerItemID, ""); + //AuthorizationRules.AllowWrite(DTSStart, ""); + _OwnerExtension.AddAuthorizationRules(AuthorizationRules); + } + protected override void AddInstanceAuthorizationRules() + { + //CSLATODO: Who can read/write which fields + _OwnerExtension.AddInstanceAuthorizationRules(AuthorizationRules); + } + public static bool CanAddObject() + { + // CSLATODO: Can Add Authorization + //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); + return true; + } + public static bool CanGetObject() + { + // CSLATODO: CanGet Authorization + return true; + } + public static bool CanDeleteObject() + { + // CSLATODO: CanDelete Authorization + //bool result = false; + //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; + //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; + //return result; + return true; + } + public static bool CanEditObject() + { + // CSLATODO: CanEdit Authorization + //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); + return true; + } + #endregion + #region Factory Methods + public int CurrentEditLevel + { get { return EditLevel; } } + private static int _OwnerUnique = 0; + protected static int OwnerUnique + { get { return ++_OwnerUnique; } } + private int _MyOwnerUnique = OwnerUnique; + public int MyOwnerUnique // Absolutely Unique ID - Editable + { get { return _MyOwnerUnique; } } + protected Owner() + {/* require use of factory methods */ + AddToCache(this); + } + 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; } } + ~Owner() + { + _CountFinalized++; + } + public void Dispose() + { + if (_Disposed) return; + _CountDisposed++; + _Disposed = true; + RemoveFromDictionaries(); + } + private void RemoveFromDictionaries() + { + RemoveFromCache(this); + if (_CacheByPrimaryKey.ContainsKey(OwnerID.ToString())) + { + List listOwner = _CacheByPrimaryKey[OwnerID.ToString()]; // Get the list of items + while (listOwner.Contains(this)) listOwner.Remove(this); // Remove the item from the list + if (listOwner.Count == 0) //If there are no items left in the list + _CacheByPrimaryKey.Remove(OwnerID.ToString()); // remove the list + } + } + public static Owner New() + { + if (!CanAddObject()) + throw new System.Security.SecurityException("User not authorized to add a Owner"); + try + { + return DataPortal.Create(); + } + catch (Exception ex) + { + throw new DbCslaException("Error on Owner.New", ex); + } + } + public static Owner New(int sessionID, byte ownerType, int ownerItemID, DateTime dTSStart) + { + Owner tmp = Owner.New(); + tmp.SessionID = sessionID; + tmp.OwnerType = ownerType; + tmp.OwnerItemID = ownerItemID; + tmp.DTSStart = dTSStart; + return tmp; + } + public static Owner MakeOwner(int sessionID, byte ownerType, int ownerItemID, DateTime dTSStart) + { + Owner tmp = Owner.New(sessionID, ownerType, ownerItemID, dTSStart); + if (tmp.IsSavable) + tmp = tmp.Save(); + else + { + Csla.Validation.BrokenRulesCollection brc = tmp.ValidationRules.GetBrokenRules(); + tmp._ErrorMessage = "Failed Validation:"; + foreach (Csla.Validation.BrokenRule br in brc) + { + tmp._ErrorMessage += "\r\n\tFailure: " + br.RuleName; + } + } + return tmp; + } + public static Owner Get(int ownerID) + { + if (!CanGetObject()) + throw new System.Security.SecurityException("User not authorized to view a Owner"); + try + { + Owner tmp = GetCachedByPrimaryKey(ownerID); + if (tmp == null) + { + tmp = DataPortal.Fetch(new PKCriteria(ownerID)); + AddToCache(tmp); + } + if (tmp.ErrorMessage == "No Record Found") + { + tmp.Dispose(); // Clean-up Owner + tmp = null; + } + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on Owner.Get", ex); + } + } + public static Owner Get(SafeDataReader dr) + { + if (dr.Read()) return new Owner(dr); + return null; + } + internal Owner(SafeDataReader dr) + { + ReadData(dr); + } + public static void Delete(int ownerID) + { + if (!CanDeleteObject()) + throw new System.Security.SecurityException("User not authorized to remove a Owner"); + try + { + DataPortal.Delete(new PKCriteria(ownerID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on Owner.Delete", ex); + } + } + public override Owner Save() + { + if (IsDeleted && !CanDeleteObject()) + throw new System.Security.SecurityException("User not authorized to remove a Owner"); + else if (IsNew && !CanAddObject()) + throw new System.Security.SecurityException("User not authorized to add a Owner"); + else if (!CanEditObject()) + throw new System.Security.SecurityException("User not authorized to update a Owner"); + try + { + BuildRefreshList(); + Owner owner = base.Save(); + RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache + AddToCache(owner);//Refresh the item in AllList + ProcessRefreshList(); + return owner; + } + catch (Exception ex) + { + throw new DbCslaException("Error on CSLA Save", ex); + } + } + #endregion + #region Data Access Portal + [Serializable()] + protected class PKCriteria + { + private int _OwnerID; + public int OwnerID + { get { return _OwnerID; } } + public PKCriteria(int ownerID) + { + _OwnerID = ownerID; + } + } + // CSLATODO: If Create needs to access DB - It should not be marked RunLocal + [RunLocal()] + private new void DataPortal_Create() + { + _OwnerID = NextOwnerID; + // Database Defaults + _SessionID = _OwnerExtension.DefaultSessionID; + _OwnerType = _OwnerExtension.DefaultOwnerType; + _OwnerItemID = _OwnerExtension.DefaultOwnerItemID; + _DTSStart = _OwnerExtension.DefaultDTSStart; + // CSLATODO: Add any defaults that are necessary + ValidationRules.CheckRules(); + } + private void ReadData(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.ReadData", GetHashCode()); + try + { + _OwnerID = dr.GetInt32("OwnerID"); + _SessionID = dr.GetInt32("SessionID"); + _OwnerType = dr.GetByte("OwnerType"); + _OwnerItemID = dr.GetInt32("OwnerItemID"); + _DTSStart = dr.GetDateTime("DTSStart"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + MarkOld(); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.ReadData", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("Owner.ReadData", ex); + } + } + private void DataPortal_Fetch(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.DataPortal_Fetch", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + ApplicationContext.LocalContext["cn"] = cn; + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getOwner"; + cm.Parameters.AddWithValue("@OwnerID", criteria.OwnerID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + if (!dr.Read()) + { + _ErrorMessage = "No Record Found"; + return; + } + ReadData(dr); + } + } + // removing of item only needed for local data portal + if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) + ApplicationContext.LocalContext.Remove("cn"); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.DataPortal_Fetch", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("Owner.DataPortal_Fetch", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + protected override void DataPortal_Insert() + { + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + ApplicationContext.LocalContext["cn"] = cn; + SQLInsert(); + // removing of item only needed for local data portal + if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) + ApplicationContext.LocalContext.Remove("cn"); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.DataPortal_Insert", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("Owner.DataPortal_Insert", ex); + } + finally + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.DataPortal_Insert", GetHashCode()); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + internal void SQLInsert() + { + if (!this.IsDirty) return; + try + { + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "addOwner"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@SessionID", _SessionID); + cm.Parameters.AddWithValue("@OwnerType", _OwnerType); + cm.Parameters.AddWithValue("@OwnerItemID", _OwnerItemID); + if (_DTSStart.Year >= 1753 && _DTSStart.Year <= 9999) cm.Parameters.AddWithValue("@DTSStart", _DTSStart); + // Output Calculated Columns + SqlParameter param_OwnerID = new SqlParameter("@newOwnerID", SqlDbType.Int); + param_OwnerID.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_OwnerID); + SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); + param_LastChanged.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_LastChanged); + // CSLATODO: Define any additional output parameters + cm.ExecuteNonQuery(); + // Save all values being returned from the Procedure + _OwnerID = (int)cm.Parameters["@newOwnerID"].Value; + _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; + } + MarkOld(); + // update child objects + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.SQLInsert", GetHashCode()); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.SQLInsert", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("Owner.SQLInsert", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static byte[] Add(SqlConnection cn, ref int ownerID, int sessionID, byte ownerType, int ownerItemID, DateTime dTSStart) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.Add", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "addOwner"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@SessionID", sessionID); + cm.Parameters.AddWithValue("@OwnerType", ownerType); + cm.Parameters.AddWithValue("@OwnerItemID", ownerItemID); + if (dTSStart.Year >= 1753 && dTSStart.Year <= 9999) cm.Parameters.AddWithValue("@DTSStart", dTSStart); + // Output Calculated Columns + SqlParameter param_OwnerID = new SqlParameter("@newOwnerID", SqlDbType.Int); + param_OwnerID.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_OwnerID); + SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); + param_LastChanged.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_LastChanged); + // CSLATODO: Define any additional output parameters + cm.ExecuteNonQuery(); + // Save all values being returned from the Procedure + ownerID = (int)cm.Parameters["@newOwnerID"].Value; + return (byte[])cm.Parameters["@newLastChanged"].Value; + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.Add", ex); + throw new DbCslaException("Owner.Add", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + protected override void DataPortal_Update() + { + if (!IsDirty) return; // If not dirty - nothing to do + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.DataPortal_Update", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + ApplicationContext.LocalContext["cn"] = cn; + SQLUpdate(); + // removing of item only needed for local data portal + if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) + ApplicationContext.LocalContext.Remove("cn"); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.DataPortal_Update", ex); + _ErrorMessage = ex.Message; + if (!ex.Message.EndsWith("has been edited by another user.")) throw ex; + } + } + [Transactional(TransactionalTypes.TransactionScope)] + internal void SQLUpdate() + { + if (!IsDirty) return; // If not dirty - nothing to do + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.SQLUpdate", GetHashCode()); + try + { + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + if (base.IsDirty) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "updateOwner"; + // All Fields including Calculated Fields + cm.Parameters.AddWithValue("@OwnerID", _OwnerID); + cm.Parameters.AddWithValue("@SessionID", _SessionID); + cm.Parameters.AddWithValue("@OwnerType", _OwnerType); + cm.Parameters.AddWithValue("@OwnerItemID", _OwnerItemID); + if (_DTSStart.Year >= 1753 && _DTSStart.Year <= 9999) cm.Parameters.AddWithValue("@DTSStart", _DTSStart); + cm.Parameters.AddWithValue("@LastChanged", _LastChanged); + // Output Calculated Columns + SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); + param_LastChanged.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_LastChanged); + // CSLATODO: Define any additional output parameters + cm.ExecuteNonQuery(); + // Save all values being returned from the Procedure + _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; + } + } + MarkOld(); + // use the open connection to update child objects + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.SQLUpdate", ex); + _ErrorMessage = ex.Message; + if (!ex.Message.EndsWith("has been edited by another user.")) throw ex; + } + } + internal void Update() + { + if (!this.IsDirty) return; + if (base.IsDirty) + { + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + if (IsNew) + _LastChanged = Owner.Add(cn, ref _OwnerID, _SessionID, _OwnerType, _OwnerItemID, _DTSStart); + else + _LastChanged = Owner.Update(cn, ref _OwnerID, _SessionID, _OwnerType, _OwnerItemID, _DTSStart, ref _LastChanged); + MarkOld(); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static byte[] Update(SqlConnection cn, ref int ownerID, int sessionID, byte ownerType, int ownerItemID, DateTime dTSStart, ref byte[] lastChanged) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.Update", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "updateOwner"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@OwnerID", ownerID); + cm.Parameters.AddWithValue("@SessionID", sessionID); + cm.Parameters.AddWithValue("@OwnerType", ownerType); + cm.Parameters.AddWithValue("@OwnerItemID", ownerItemID); + if (dTSStart.Year >= 1753 && dTSStart.Year <= 9999) cm.Parameters.AddWithValue("@DTSStart", dTSStart); + cm.Parameters.AddWithValue("@LastChanged", lastChanged); + // Output Calculated Columns + SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); + param_LastChanged.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_LastChanged); + // CSLATODO: Define any additional output parameters + cm.ExecuteNonQuery(); + // Save all values being returned from the Procedure + return (byte[])cm.Parameters["@newLastChanged"].Value; + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.Update", ex); + throw new DbCslaException("Owner.Update", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + protected override void DataPortal_DeleteSelf() + { + DataPortal_Delete(new PKCriteria(_OwnerID)); + } + [Transactional(TransactionalTypes.TransactionScope)] + private void DataPortal_Delete(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.DataPortal_Delete", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "deleteOwner"; + cm.Parameters.AddWithValue("@OwnerID", criteria.OwnerID); + cm.ExecuteNonQuery(); + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.DataPortal_Delete", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("Owner.DataPortal_Delete", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static void Remove(SqlConnection cn, int ownerID) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.Remove", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "deleteOwner"; + // Input PK Fields + cm.Parameters.AddWithValue("@OwnerID", ownerID); + // CSLATODO: Define any additional output parameters + cm.ExecuteNonQuery(); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.Remove", ex); + throw new DbCslaException("Owner.Remove", ex); + } + } + #endregion + #region Exists + public static bool Exists(int ownerID) + { + ExistsCommand result; + try + { + result = DataPortal.Execute(new ExistsCommand(ownerID)); + return result.Exists; + } + catch (Exception ex) + { + throw new DbCslaException("Error on Owner.Exists", ex); + } + } + [Serializable()] + private class ExistsCommand : CommandBase + { + private int _OwnerID; + private bool _exists; + public bool Exists + { + get { return _exists; } + } + public ExistsCommand(int ownerID) + { + _OwnerID = ownerID; + } + protected override void DataPortal_Execute() + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.DataPortal_Execute", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + cn.Open(); + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "existsOwner"; + cm.Parameters.AddWithValue("@OwnerID", _OwnerID); + int count = (int)cm.ExecuteScalar(); + _exists = (count > 0); + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.DataPortal_Execute", ex); + throw new DbCslaException("Owner.DataPortal_Execute", ex); + } + } + } + #endregion + // Standard Default Code + #region extension + OwnerExtension _OwnerExtension = new OwnerExtension(); + [Serializable()] + partial class OwnerExtension : extensionBase + { + } + [Serializable()] + class extensionBase + { + // Default Values + public virtual int DefaultSessionID + { + get { return 0; } + } + public virtual byte DefaultOwnerType + { + get { return 0; } + } + public virtual int DefaultOwnerItemID + { + get { return 0; } + } + public virtual DateTime DefaultDTSStart + { + get { return DateTime.Now; } + } + // Authorization Rules + public virtual void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) + { + // Needs to be overriden to add new authorization rules + } + // Instance Authorization Rules + public virtual void AddInstanceAuthorizationRules(Csla.Security.AuthorizationRules rules) + { + // Needs to be overriden to add new authorization rules + } + // Validation Rules + public virtual void AddValidationRules(Csla.Validation.ValidationRules rules) + { + // Needs to be overriden to add new validation rules + } + // InstanceValidation Rules + public virtual void AddInstanceValidationRules(Csla.Validation.ValidationRules rules) + { + // Needs to be overriden to add new validation rules + } + } + #endregion + } // Class + #region Converter + internal class OwnerConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is Owner) + { + // Return the ToString value + return ((Owner)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create OwnerExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class Owner +// { +// partial class OwnerExtension : extensionBase +// { +// // CSLATODO: Override automatic defaults +// public virtual int DefaultSessionID +// { +// get { return 0; } +// } +// public virtual byte DefaultOwnerType +// { +// get { return 0; } +// } +// public virtual int DefaultOwnerItemID +// { +// get { return 0; } +// } +// public virtual DateTime DefaultDTSStart +// { +// get { return DateTime.Now; } +// } +// public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) +// { +// //rules.AllowRead(Dbid, ""); +// } +// public new void AddInstanceAuthorizationRules(Csla.Security.AuthorizationRules rules) +// { +// //rules.AllowInstanceRead(Dbid, ""); +// } +// public new void AddValidationRules(Csla.Validation.ValidationRules rules) +// { +// rules.AddRule( +// Csla.Validation.CommonRules.StringMaxLength, +// new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); +// } +// public new void AddInstanceValidationRules(Csla.Validation.ValidationRules rules) +// { +// rules.AddInstanceRule(/* Instance Validation Rule */); +// } +// } +// } +//} diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/OwnerInfo.cs b/PROMS/VEPROMS.CSLA.Library/Generated/OwnerInfo.cs new file mode 100644 index 00000000..ebf718de --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/OwnerInfo.cs @@ -0,0 +1,354 @@ +// ======================================================================== +// Copyright 2007 - Volian Enterprises, Inc. All rights reserved. +// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE +// ------------------------------------------------------------------------ +// $Workfile: $ $Revision: $ +// $Author: $ $Date: $ +// +// $History: $ +// ======================================================================== + +using System; +using System.Data; +using System.Data.SqlClient; +using Csla; +using Csla.Data; +using System.Configuration; +using System.IO; +using System.ComponentModel; +using System.Collections.Generic; +namespace VEPROMS.CSLA.Library +{ + public delegate void OwnerInfoEvent(object sender); + /// + /// OwnerInfo Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(OwnerInfoConverter))] + public partial class OwnerInfo : ReadOnlyBase, IDisposable + { + public event OwnerInfoEvent Changed; + private void OnChange() + { + if (Changed != null) Changed(this); + } + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Collection + private static List _CacheList = new List(); + protected static void AddToCache(OwnerInfo ownerInfo) + { + if (!_CacheList.Contains(ownerInfo)) _CacheList.Add(ownerInfo); // In AddToCache + } + protected static void RemoveFromCache(OwnerInfo ownerInfo) + { + while (_CacheList.Contains(ownerInfo)) _CacheList.Remove(ownerInfo); // In RemoveFromCache + } + private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); + private static void ConvertListToDictionary() + { + while (_CacheList.Count > 0) // Move OwnerInfo(s) from temporary _CacheList to _CacheByPrimaryKey + { + OwnerInfo tmp = _CacheList[0]; // Get the first OwnerInfo + string pKey = tmp.OwnerID.ToString(); + if (!_CacheByPrimaryKey.ContainsKey(pKey)) + { + _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey + } + _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list + _CacheList.RemoveAt(0); // Remove the first OwnerInfo + } + } + internal static void AddList(OwnerInfoList lst) + { + foreach (OwnerInfo item in lst) AddToCache(item); + } + protected static OwnerInfo GetCachedByPrimaryKey(int ownerID) + { + ConvertListToDictionary(); + string key = ownerID.ToString(); + if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; + return null; + } + #endregion + #region Business Methods + private string _ErrorMessage = string.Empty; + public string ErrorMessage + { + get { return _ErrorMessage; } + } + protected Owner _Editable; + private IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + if (_Editable != null) + hasBrokenRules = _Editable.HasBrokenRules; + return hasBrokenRules; + } + } + private int _OwnerID; + [System.ComponentModel.DataObjectField(true, true)] + public int OwnerID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("OwnerID", true); + return _OwnerID; + } + } + private int _SessionID; + public int SessionID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("SessionID", true); + return _SessionID; + } + } + private byte _OwnerType; + public byte OwnerType + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("OwnerType", true); + return _OwnerType; + } + } + private int _OwnerItemID; + public int OwnerItemID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("OwnerItemID", true); + return _OwnerItemID; + } + } + private DateTime _DTSStart = new DateTime(); + public DateTime DTSStart + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DTSStart", true); + return _DTSStart; + } + } + // CSLATODO: Replace base OwnerInfo.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current OwnerInfo + //public override string ToString() + //{ + // return base.ToString(); + //} + // CSLATODO: Check OwnerInfo.GetIdValue to assure that the ID returned is unique + /// + /// Overrides Base GetIdValue - Used internally by CSLA to determine equality + /// + /// A Unique ID for the current OwnerInfo + protected override object GetIdValue() + { + return MyOwnerInfoUnique; // Absolutely Unique ID + } + #endregion + #region Factory Methods + private static int _OwnerInfoUnique = 0; + private static int OwnerInfoUnique + { get { return ++_OwnerInfoUnique; } } + private int _MyOwnerInfoUnique = OwnerInfoUnique; + public int MyOwnerInfoUnique // Absolutely Unique ID - Info + { get { return _MyOwnerInfoUnique; } } + protected OwnerInfo() + {/* require use of factory methods */ + AddToCache(this); + } + 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; } } + ~OwnerInfo() + { + _CountFinalized++; + } + public void Dispose() + { + if (_Disposed) return; + _CountDisposed++; + _Disposed = true; + RemoveFromCache(this); + if (!_CacheByPrimaryKey.ContainsKey(OwnerID.ToString())) return; + List listOwnerInfo = _CacheByPrimaryKey[OwnerID.ToString()]; // Get the list of items + while (listOwnerInfo.Contains(this)) listOwnerInfo.Remove(this); // Remove the item from the list + if (listOwnerInfo.Count == 0) // If there are no items left in the list + _CacheByPrimaryKey.Remove(OwnerID.ToString()); // remove the list + } + public virtual Owner Get() + { + return _Editable = Owner.Get(_OwnerID); + } + public static void Refresh(Owner tmp) + { + string key = tmp.OwnerID.ToString(); + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(key)) + foreach (OwnerInfo tmpInfo in _CacheByPrimaryKey[key]) + tmpInfo.RefreshFields(tmp); + } + protected virtual void RefreshFields(Owner tmp) + { + _SessionID = tmp.SessionID; + _OwnerType = tmp.OwnerType; + _OwnerItemID = tmp.OwnerItemID; + _DTSStart = tmp.DTSStart; + _OwnerInfoExtension.Refresh(this); + OnChange();// raise an event + } + public static OwnerInfo Get(int ownerID) + { + //if (!CanGetObject()) + // throw new System.Security.SecurityException("User not authorized to view a Owner"); + try + { + OwnerInfo tmp = GetCachedByPrimaryKey(ownerID); + if (tmp == null) + { + tmp = DataPortal.Fetch(new PKCriteria(ownerID)); + AddToCache(tmp); + } + if (tmp.ErrorMessage == "No Record Found") + { + tmp.Dispose(); // Clean-up OwnerInfo + tmp = null; + } + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on OwnerInfo.Get", ex); + } + } + #endregion + #region Data Access Portal + internal OwnerInfo(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfo.Constructor", GetHashCode()); + try + { + ReadData(dr); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("OwnerInfo.Constructor", ex); + throw new DbCslaException("OwnerInfo.Constructor", ex); + } + } + [Serializable()] + protected class PKCriteria + { + private int _OwnerID; + public int OwnerID + { get { return _OwnerID; } } + public PKCriteria(int ownerID) + { + _OwnerID = ownerID; + } + } + private void ReadData(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfo.ReadData", GetHashCode()); + try + { + _OwnerID = dr.GetInt32("OwnerID"); + _SessionID = dr.GetInt32("SessionID"); + _OwnerType = dr.GetByte("OwnerType"); + _OwnerItemID = dr.GetInt32("OwnerItemID"); + _DTSStart = dr.GetDateTime("DTSStart"); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("OwnerInfo.ReadData", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("OwnerInfo.ReadData", ex); + } + } + private void DataPortal_Fetch(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfo.DataPortal_Fetch", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + ApplicationContext.LocalContext["cn"] = cn; + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getOwner"; + cm.Parameters.AddWithValue("@OwnerID", criteria.OwnerID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + if (!dr.Read()) + { + _ErrorMessage = "No Record Found"; + return; + } + ReadData(dr); + } + } + // removing of item only needed for local data portal + if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) + ApplicationContext.LocalContext.Remove("cn"); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("OwnerInfo.DataPortal_Fetch", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("OwnerInfo.DataPortal_Fetch", ex); + } + } + #endregion + // Standard Refresh + #region extension + OwnerInfoExtension _OwnerInfoExtension = new OwnerInfoExtension(); + [Serializable()] + partial class OwnerInfoExtension : extensionBase { } + [Serializable()] + class extensionBase + { + // Default Refresh + public virtual void Refresh(OwnerInfo tmp) { } + } + #endregion + } // Class + #region Converter + internal class OwnerInfoConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is OwnerInfo) + { + // Return the ToString value + return ((OwnerInfo)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/OwnerInfoList.cs b/PROMS/VEPROMS.CSLA.Library/Generated/OwnerInfoList.cs new file mode 100644 index 00000000..746db559 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/OwnerInfoList.cs @@ -0,0 +1,225 @@ +// ======================================================================== +// Copyright 2007 - Volian Enterprises, Inc. All rights reserved. +// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE +// ------------------------------------------------------------------------ +// $Workfile: $ $Revision: $ +// $Author: $ $Date: $ +// +// $History: $ +// ======================================================================== + +using System; +using System.Data; +using System.Data.SqlClient; +using Csla; +using Csla.Data; +using System.Configuration; +using System.IO; +using System.ComponentModel; +using System.Collections.Generic; +namespace VEPROMS.CSLA.Library +{ + /// + /// OwnerInfoList Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(OwnerInfoListConverter))] + public partial class OwnerInfoList : ReadOnlyListBase, ICustomTypeDescriptor, IDisposable + { + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Business Methods + internal new IList Items + { get { return base.Items; } } + public void AddEvents() + { + foreach (OwnerInfo tmp in this) + { + tmp.Changed += new OwnerInfoEvent(tmp_Changed); + } + } + void tmp_Changed(object sender) + { + for (int i = 0; i < Count; i++) + { + if (base[i] == sender) + this.OnListChanged(new ListChangedEventArgs(ListChangedType.ItemChanged, i)); + } + } + 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; } } + ~OwnerInfoList() + { + _CountFinalized++; + } + public void Dispose() + { + if (_Disposed) return; + _CountDisposed++; + _Disposed = true; + foreach (OwnerInfo tmp in this) + { + tmp.Changed -= new OwnerInfoEvent(tmp_Changed); + } + } + #endregion + #region Factory Methods + public static OwnerInfoList _OwnerInfoList = null; + /// + /// Return a list of all OwnerInfo. + /// + public static OwnerInfoList Get() + { + try + { + if (_OwnerInfoList != null) + return _OwnerInfoList; + OwnerInfoList tmp = DataPortal.Fetch(); + OwnerInfo.AddList(tmp); + tmp.AddEvents(); + _OwnerInfoList = tmp; + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on OwnerInfoList.Get", ex); + } + } + /// + /// Reset the list of all OwnerInfo. + /// + public static void Reset() + { + _OwnerInfoList = null; + } + // CSLATODO: Add alternative gets - + //public static OwnerInfoList Get() + //{ + // try + // { + // return DataPortal.Fetch(new FilteredCriteria()); + // } + // catch (Exception ex) + // { + // throw new DbCslaException("Error on OwnerInfoList.Get", ex); + // } + //} + private OwnerInfoList() + { /* require use of factory methods */ } + #endregion + #region Data Access Portal + private void DataPortal_Fetch() + { + this.RaiseListChangedEvents = false; + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfoList.DataPortal_Fetch", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getOwners"; + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + IsReadOnly = false; + while (dr.Read()) this.Add(new OwnerInfo(dr)); + IsReadOnly = true; + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("OwnerInfoList.DataPortal_Fetch", ex); + throw new DbCslaException("OwnerInfoList.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } + #endregion + #region ICustomTypeDescriptor impl + public String GetClassName() + { return TypeDescriptor.GetClassName(this, true); } + public AttributeCollection GetAttributes() + { return TypeDescriptor.GetAttributes(this, true); } + public String GetComponentName() + { return TypeDescriptor.GetComponentName(this, true); } + public TypeConverter GetConverter() + { return TypeDescriptor.GetConverter(this, true); } + public EventDescriptor GetDefaultEvent() + { return TypeDescriptor.GetDefaultEvent(this, true); } + public PropertyDescriptor GetDefaultProperty() + { return TypeDescriptor.GetDefaultProperty(this, true); } + public object GetEditor(Type editorBaseType) + { return TypeDescriptor.GetEditor(this, editorBaseType, true); } + public EventDescriptorCollection GetEvents(Attribute[] attributes) + { return TypeDescriptor.GetEvents(this, attributes, true); } + public EventDescriptorCollection GetEvents() + { return TypeDescriptor.GetEvents(this, true); } + public object GetPropertyOwner(PropertyDescriptor pd) + { return this; } + /// + /// Called to get the properties of this type. Returns properties with certain + /// attributes. this restriction is not implemented here. + /// + /// + /// + public PropertyDescriptorCollection GetProperties(Attribute[] attributes) + { return GetProperties(); } + /// + /// Called to get the properties of this type. + /// + /// + public PropertyDescriptorCollection GetProperties() + { + // Create a collection object to hold property descriptors + PropertyDescriptorCollection pds = new PropertyDescriptorCollection(null); + // Iterate the list + for (int i = 0; i < this.Items.Count; i++) + { + // Create a property descriptor for the item and add to the property descriptor collection + OwnerInfoListPropertyDescriptor pd = new OwnerInfoListPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class OwnerInfoListPropertyDescriptor : vlnListPropertyDescriptor + { + private OwnerInfo Item { get { return (OwnerInfo)_Item; } } + public OwnerInfoListPropertyDescriptor(OwnerInfoList collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class OwnerInfoListConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is OwnerInfoList) + { + // Return department and department role separated by comma. + return ((OwnerInfoList)value).Items.Count.ToString() + " Owners"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/Session.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Session.cs new file mode 100644 index 00000000..9a0820c0 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/Session.cs @@ -0,0 +1,1085 @@ +// ======================================================================== +// Copyright 2007 - Volian Enterprises, Inc. All rights reserved. +// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE +// ------------------------------------------------------------------------ +// $Workfile: $ $Revision: $ +// $Author: $ $Date: $ +// +// $History: $ +// ======================================================================== + +using System; +using System.Data; +using System.Data.SqlClient; +using Csla; +using Csla.Data; +using System.Configuration; +using System.IO; +using System.ComponentModel; +using System.Collections.Generic; +using Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// Session Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(SessionConverter))] + public partial class Session : BusinessBase, IDisposable, IVEHasBrokenRules + { + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Refresh + private List _RefreshSessions = new List(); + private void AddToRefreshList(List refreshSessions) + { + if (IsDirty) + refreshSessions.Add(this); + } + private void ClearRefreshList() + { + _RefreshSessions = new List(); + } + private void BuildRefreshList() + { + ClearRefreshList(); + AddToRefreshList(_RefreshSessions); + } + private void ProcessRefreshList() + { + foreach (Session tmp in _RefreshSessions) + { + SessionInfo.Refresh(tmp); + } + ClearRefreshList(); + } + #endregion + #region Collection + private static List _CacheList = new List(); + protected static void AddToCache(Session session) + { + if (!_CacheList.Contains(session)) _CacheList.Add(session); // In AddToCache + } + protected static void RemoveFromCache(Session session) + { + while (_CacheList.Contains(session)) _CacheList.Remove(session); // In RemoveFromCache + } + private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); + private static void ConvertListToDictionary() + { + while (_CacheList.Count > 0) // Move Session(s) from temporary _CacheList to _CacheByPrimaryKey + { + Session tmp = _CacheList[0]; // Get the first Session + string pKey = tmp.SessionID.ToString(); + if (!_CacheByPrimaryKey.ContainsKey(pKey)) + { + _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey + } + _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list + _CacheList.RemoveAt(0); // Remove the first Session + } + } + protected static Session GetCachedByPrimaryKey(int sessionID) + { + ConvertListToDictionary(); + string key = sessionID.ToString(); + if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; + return null; + } + #endregion + #region Business Methods + private string _ErrorMessage = string.Empty; + public string ErrorMessage + { + get { return _ErrorMessage; } + } + private static int _nextSessionID = -1; + public static int NextSessionID + { + get { return _nextSessionID--; } + } + private int _SessionID; + [System.ComponentModel.DataObjectField(true, true)] + public int SessionID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("SessionID", true); + return _SessionID; + } + } + private string _UserID = string.Empty; + public string UserID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("UserID", true); + return _UserID; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("UserID", true); + if (value == null) value = string.Empty; + if (_UserID != value) + { + _UserID = value; + PropertyHasChanged(); + } + } + } + private DateTime _DTSDtart = new DateTime(); + public DateTime DTSDtart + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DTSDtart", true); + return _DTSDtart; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("DTSDtart", true); + if (_DTSDtart != value) + { + _DTSDtart = value; + PropertyHasChanged(); + } + } + } + private DateTime? _DTSEnd; + public DateTime? DTSEnd + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DTSEnd", true); + return _DTSEnd; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("DTSEnd", true); + if (_DTSEnd != value) + { + _DTSEnd = value; + PropertyHasChanged(); + } + } + } + private DateTime _DTSActivity = new DateTime(); + public DateTime DTSActivity + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DTSActivity", true); + return _DTSActivity; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("DTSActivity", true); + if (_DTSActivity != value) + { + _DTSActivity = value; + PropertyHasChanged(); + } + } + } + private byte[] _LastChanged = new byte[8];//timestamp + private string _MachineName = string.Empty; + public string MachineName + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MachineName", true); + return _MachineName; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("MachineName", true); + if (value == null) value = string.Empty; + if (_MachineName != value) + { + _MachineName = value; + PropertyHasChanged(); + } + } + } + private int _ProcessID; + public int ProcessID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ProcessID", true); + return _ProcessID; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("ProcessID", true); + if (_ProcessID != value) + { + _ProcessID = value; + PropertyHasChanged(); + } + } + } + public override bool IsDirty + { + get { return base.IsDirty; } + } + public bool IsDirtyList(List list) + { + return base.IsDirty; + } + public override bool IsValid + { + get { return (IsNew && !IsDirty) ? true : base.IsValid; } + } + public bool IsValidList(List list) + { + return (IsNew && !IsDirty) ? true : base.IsValid; + } + // CSLATODO: Replace base Session.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current Session + //public override string ToString() + //{ + // return base.ToString(); + //} + // CSLATODO: Check Session.GetIdValue to assure that the ID returned is unique + /// + /// Overrides Base GetIdValue - Used internally by CSLA to determine equality + /// + /// A Unique ID for the current Session + protected override object GetIdValue() + { + return MySessionUnique; // Absolutely Unique ID + } + #endregion + #region ValidationRules + [NonSerialized] + private bool _CheckingBrokenRules = false; + public IVEHasBrokenRules HasBrokenRules + { + get + { + if (_CheckingBrokenRules) return null; + if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this; + try + { + _CheckingBrokenRules = true; + IVEHasBrokenRules hasBrokenRules = null; + return hasBrokenRules; + } + finally + { + _CheckingBrokenRules = false; + } + } + } + public BrokenRulesCollection BrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = HasBrokenRules; + if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; + return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); + } + } + protected override void AddBusinessRules() + { + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringRequired, "UserID"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringRequired, "MachineName"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("MachineName", 100)); + //ValidationRules.AddDependantProperty("x", "y"); + _SessionExtension.AddValidationRules(ValidationRules); + // CSLATODO: Add other validation rules + } + protected override void AddInstanceBusinessRules() + { + _SessionExtension.AddInstanceValidationRules(ValidationRules); + // CSLATODO: Add other validation rules + } + // Sample data comparison validation rule + //private bool StartDateGTEndDate(object target, Csla.Validation.RuleArgs e) + //{ + // if (_started > _ended) + // { + // e.Description = "Start date can't be after end date"; + // return false; + // } + // else + // return true; + //} + #endregion + #region Authorization Rules + protected override void AddAuthorizationRules() + { + //CSLATODO: Who can read/write which fields + //AuthorizationRules.AllowRead(SessionID, ""); + //AuthorizationRules.AllowRead(UserID, ""); + //AuthorizationRules.AllowRead(DTSDtart, ""); + //AuthorizationRules.AllowRead(DTSEnd, ""); + //AuthorizationRules.AllowRead(DTSActivity, ""); + //AuthorizationRules.AllowRead(MachineName, ""); + //AuthorizationRules.AllowRead(ProcessID, ""); + //AuthorizationRules.AllowWrite(UserID, ""); + //AuthorizationRules.AllowWrite(DTSDtart, ""); + //AuthorizationRules.AllowWrite(DTSEnd, ""); + //AuthorizationRules.AllowWrite(DTSActivity, ""); + //AuthorizationRules.AllowWrite(MachineName, ""); + //AuthorizationRules.AllowWrite(ProcessID, ""); + _SessionExtension.AddAuthorizationRules(AuthorizationRules); + } + protected override void AddInstanceAuthorizationRules() + { + //CSLATODO: Who can read/write which fields + _SessionExtension.AddInstanceAuthorizationRules(AuthorizationRules); + } + public static bool CanAddObject() + { + // CSLATODO: Can Add Authorization + //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); + return true; + } + public static bool CanGetObject() + { + // CSLATODO: CanGet Authorization + return true; + } + public static bool CanDeleteObject() + { + // CSLATODO: CanDelete Authorization + //bool result = false; + //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; + //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; + //return result; + return true; + } + public static bool CanEditObject() + { + // CSLATODO: CanEdit Authorization + //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); + return true; + } + #endregion + #region Factory Methods + public int CurrentEditLevel + { get { return EditLevel; } } + private static int _SessionUnique = 0; + protected static int SessionUnique + { get { return ++_SessionUnique; } } + private int _MySessionUnique = SessionUnique; + public int MySessionUnique // Absolutely Unique ID - Editable + { get { return _MySessionUnique; } } + protected Session() + {/* require use of factory methods */ + AddToCache(this); + } + 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; } } + ~Session() + { + _CountFinalized++; + } + public void Dispose() + { + if (_Disposed) return; + _CountDisposed++; + _Disposed = true; + RemoveFromDictionaries(); + } + private void RemoveFromDictionaries() + { + RemoveFromCache(this); + if (_CacheByPrimaryKey.ContainsKey(SessionID.ToString())) + { + List listSession = _CacheByPrimaryKey[SessionID.ToString()]; // Get the list of items + while (listSession.Contains(this)) listSession.Remove(this); // Remove the item from the list + if (listSession.Count == 0) //If there are no items left in the list + _CacheByPrimaryKey.Remove(SessionID.ToString()); // remove the list + } + } + public static Session New() + { + if (!CanAddObject()) + throw new System.Security.SecurityException("User not authorized to add a Session"); + try + { + return DataPortal.Create(); + } + catch (Exception ex) + { + throw new DbCslaException("Error on Session.New", ex); + } + } + public static Session New(string machineName, int processID) + { + Session tmp = Session.New(); + tmp.MachineName = machineName; + tmp.ProcessID = processID; + return tmp; + } + public static Session New(string userID, DateTime dTSDtart, DateTime? dTSEnd, DateTime dTSActivity, string machineName, int processID) + { + Session tmp = Session.New(); + tmp.UserID = userID; + tmp.DTSDtart = dTSDtart; + tmp.DTSEnd = dTSEnd; + tmp.DTSActivity = dTSActivity; + tmp.MachineName = machineName; + tmp.ProcessID = processID; + return tmp; + } + public static Session MakeSession(string userID, DateTime dTSDtart, DateTime? dTSEnd, DateTime dTSActivity, string machineName, int processID) + { + Session tmp = Session.New(userID, dTSDtart, dTSEnd, dTSActivity, machineName, processID); + if (tmp.IsSavable) + tmp = tmp.Save(); + else + { + Csla.Validation.BrokenRulesCollection brc = tmp.ValidationRules.GetBrokenRules(); + tmp._ErrorMessage = "Failed Validation:"; + foreach (Csla.Validation.BrokenRule br in brc) + { + tmp._ErrorMessage += "\r\n\tFailure: " + br.RuleName; + } + } + return tmp; + } + public static Session New(DateTime? dTSEnd, string machineName, int processID) + { + Session tmp = Session.New(); + tmp.DTSEnd = dTSEnd; + tmp.MachineName = machineName; + tmp.ProcessID = processID; + return tmp; + } + public static Session MakeSession(DateTime? dTSEnd, string machineName, int processID) + { + Session tmp = Session.New(dTSEnd, machineName, processID); + if (tmp.IsSavable) + tmp = tmp.Save(); + else + { + Csla.Validation.BrokenRulesCollection brc = tmp.ValidationRules.GetBrokenRules(); + tmp._ErrorMessage = "Failed Validation:"; + foreach (Csla.Validation.BrokenRule br in brc) + { + tmp._ErrorMessage += "\r\n\tFailure: " + br.RuleName; + } + } + return tmp; + } + public static Session Get(int sessionID) + { + if (!CanGetObject()) + throw new System.Security.SecurityException("User not authorized to view a Session"); + try + { + Session tmp = GetCachedByPrimaryKey(sessionID); + if (tmp == null) + { + tmp = DataPortal.Fetch(new PKCriteria(sessionID)); + AddToCache(tmp); + } + if (tmp.ErrorMessage == "No Record Found") + { + tmp.Dispose(); // Clean-up Session + tmp = null; + } + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on Session.Get", ex); + } + } + public static Session Get(SafeDataReader dr) + { + if (dr.Read()) return new Session(dr); + return null; + } + internal Session(SafeDataReader dr) + { + ReadData(dr); + } + public static void Delete(int sessionID) + { + if (!CanDeleteObject()) + throw new System.Security.SecurityException("User not authorized to remove a Session"); + try + { + DataPortal.Delete(new PKCriteria(sessionID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on Session.Delete", ex); + } + } + public override Session Save() + { + if (IsDeleted && !CanDeleteObject()) + throw new System.Security.SecurityException("User not authorized to remove a Session"); + else if (IsNew && !CanAddObject()) + throw new System.Security.SecurityException("User not authorized to add a Session"); + else if (!CanEditObject()) + throw new System.Security.SecurityException("User not authorized to update a Session"); + try + { + BuildRefreshList(); + Session session = base.Save(); + RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache + AddToCache(session);//Refresh the item in AllList + ProcessRefreshList(); + return session; + } + catch (Exception ex) + { + throw new DbCslaException("Error on CSLA Save", ex); + } + } + #endregion + #region Data Access Portal + [Serializable()] + protected class PKCriteria + { + private int _SessionID; + public int SessionID + { get { return _SessionID; } } + public PKCriteria(int sessionID) + { + _SessionID = sessionID; + } + } + // CSLATODO: If Create needs to access DB - It should not be marked RunLocal + [RunLocal()] + private new void DataPortal_Create() + { + _SessionID = NextSessionID; + // Database Defaults + _UserID = _SessionExtension.DefaultUserID; + _DTSDtart = _SessionExtension.DefaultDTSDtart; + _DTSActivity = _SessionExtension.DefaultDTSActivity; + // CSLATODO: Add any defaults that are necessary + ValidationRules.CheckRules(); + } + private void ReadData(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.ReadData", GetHashCode()); + try + { + _SessionID = dr.GetInt32("SessionID"); + _UserID = dr.GetString("UserID"); + _DTSDtart = dr.GetDateTime("DTSDtart"); + if (!dr.IsDBNull(dr.GetOrdinal("DTSEnd"))) _DTSEnd = dr.GetDateTime("DTSEnd"); + _DTSActivity = dr.GetDateTime("DTSActivity"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + _MachineName = dr.GetString("MachineName"); + _ProcessID = dr.GetInt32("ProcessID"); + MarkOld(); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.ReadData", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("Session.ReadData", ex); + } + } + private void DataPortal_Fetch(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.DataPortal_Fetch", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + ApplicationContext.LocalContext["cn"] = cn; + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getSession"; + cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + if (!dr.Read()) + { + _ErrorMessage = "No Record Found"; + return; + } + ReadData(dr); + } + } + // removing of item only needed for local data portal + if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) + ApplicationContext.LocalContext.Remove("cn"); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.DataPortal_Fetch", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("Session.DataPortal_Fetch", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + protected override void DataPortal_Insert() + { + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + ApplicationContext.LocalContext["cn"] = cn; + SQLInsert(); + // removing of item only needed for local data portal + if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) + ApplicationContext.LocalContext.Remove("cn"); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.DataPortal_Insert", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("Session.DataPortal_Insert", ex); + } + finally + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.DataPortal_Insert", GetHashCode()); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + internal void SQLInsert() + { + if (!this.IsDirty) return; + try + { + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "addSession"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@UserID", _UserID); + if (_DTSDtart.Year >= 1753 && _DTSDtart.Year <= 9999) cm.Parameters.AddWithValue("@DTSDtart", _DTSDtart); + if (_DTSEnd != null && ((DateTime)_DTSEnd).Year >= 1753 && ((DateTime)_DTSEnd).Year <= 9999) cm.Parameters.AddWithValue("@DTSEnd", _DTSEnd); + if (_DTSActivity.Year >= 1753 && _DTSActivity.Year <= 9999) cm.Parameters.AddWithValue("@DTSActivity", _DTSActivity); + cm.Parameters.AddWithValue("@MachineName", _MachineName); + cm.Parameters.AddWithValue("@ProcessID", _ProcessID); + // Output Calculated Columns + SqlParameter param_SessionID = new SqlParameter("@newSessionID", SqlDbType.Int); + param_SessionID.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_SessionID); + SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); + param_LastChanged.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_LastChanged); + // CSLATODO: Define any additional output parameters + cm.ExecuteNonQuery(); + // Save all values being returned from the Procedure + _SessionID = (int)cm.Parameters["@newSessionID"].Value; + _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; + } + MarkOld(); + // update child objects + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.SQLInsert", GetHashCode()); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.SQLInsert", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("Session.SQLInsert", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static byte[] Add(SqlConnection cn, ref int sessionID, string userID, DateTime dTSDtart, DateTime? dTSEnd, DateTime dTSActivity, string machineName, int processID) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.Add", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "addSession"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@UserID", userID); + if (dTSDtart.Year >= 1753 && dTSDtart.Year <= 9999) cm.Parameters.AddWithValue("@DTSDtart", dTSDtart); + if (dTSEnd != null && ((DateTime)dTSEnd).Year >= 1753 && ((DateTime)dTSEnd).Year <= 9999) cm.Parameters.AddWithValue("@DTSEnd", dTSEnd); + if (dTSActivity.Year >= 1753 && dTSActivity.Year <= 9999) cm.Parameters.AddWithValue("@DTSActivity", dTSActivity); + cm.Parameters.AddWithValue("@MachineName", machineName); + cm.Parameters.AddWithValue("@ProcessID", processID); + // Output Calculated Columns + SqlParameter param_SessionID = new SqlParameter("@newSessionID", SqlDbType.Int); + param_SessionID.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_SessionID); + SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); + param_LastChanged.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_LastChanged); + // CSLATODO: Define any additional output parameters + cm.ExecuteNonQuery(); + // Save all values being returned from the Procedure + sessionID = (int)cm.Parameters["@newSessionID"].Value; + return (byte[])cm.Parameters["@newLastChanged"].Value; + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.Add", ex); + throw new DbCslaException("Session.Add", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + protected override void DataPortal_Update() + { + if (!IsDirty) return; // If not dirty - nothing to do + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.DataPortal_Update", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + ApplicationContext.LocalContext["cn"] = cn; + SQLUpdate(); + // removing of item only needed for local data portal + if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) + ApplicationContext.LocalContext.Remove("cn"); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.DataPortal_Update", ex); + _ErrorMessage = ex.Message; + if (!ex.Message.EndsWith("has been edited by another user.")) throw ex; + } + } + [Transactional(TransactionalTypes.TransactionScope)] + internal void SQLUpdate() + { + if (!IsDirty) return; // If not dirty - nothing to do + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.SQLUpdate", GetHashCode()); + try + { + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + if (base.IsDirty) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "updateSession"; + // All Fields including Calculated Fields + cm.Parameters.AddWithValue("@SessionID", _SessionID); + cm.Parameters.AddWithValue("@UserID", _UserID); + if (_DTSDtart.Year >= 1753 && _DTSDtart.Year <= 9999) cm.Parameters.AddWithValue("@DTSDtart", _DTSDtart); + if (_DTSEnd != null && ((DateTime)_DTSEnd).Year >= 1753 && ((DateTime)_DTSEnd).Year <= 9999) cm.Parameters.AddWithValue("@DTSEnd", _DTSEnd); + if (_DTSActivity.Year >= 1753 && _DTSActivity.Year <= 9999) cm.Parameters.AddWithValue("@DTSActivity", _DTSActivity); + cm.Parameters.AddWithValue("@LastChanged", _LastChanged); + cm.Parameters.AddWithValue("@MachineName", _MachineName); + cm.Parameters.AddWithValue("@ProcessID", _ProcessID); + // Output Calculated Columns + SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); + param_LastChanged.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_LastChanged); + // CSLATODO: Define any additional output parameters + cm.ExecuteNonQuery(); + // Save all values being returned from the Procedure + _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; + } + } + MarkOld(); + // use the open connection to update child objects + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.SQLUpdate", ex); + _ErrorMessage = ex.Message; + if (!ex.Message.EndsWith("has been edited by another user.")) throw ex; + } + } + internal void Update() + { + if (!this.IsDirty) return; + if (base.IsDirty) + { + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + if (IsNew) + _LastChanged = Session.Add(cn, ref _SessionID, _UserID, _DTSDtart, _DTSEnd, _DTSActivity, _MachineName, _ProcessID); + else + _LastChanged = Session.Update(cn, ref _SessionID, _UserID, _DTSDtart, _DTSEnd, _DTSActivity, ref _LastChanged, _MachineName, _ProcessID); + MarkOld(); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static byte[] Update(SqlConnection cn, ref int sessionID, string userID, DateTime dTSDtart, DateTime? dTSEnd, DateTime dTSActivity, ref byte[] lastChanged, string machineName, int processID) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.Update", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "updateSession"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@SessionID", sessionID); + cm.Parameters.AddWithValue("@UserID", userID); + if (dTSDtart.Year >= 1753 && dTSDtart.Year <= 9999) cm.Parameters.AddWithValue("@DTSDtart", dTSDtart); + if (dTSEnd != null && ((DateTime)dTSEnd).Year >= 1753 && ((DateTime)dTSEnd).Year <= 9999) cm.Parameters.AddWithValue("@DTSEnd", dTSEnd); + if (dTSActivity.Year >= 1753 && dTSActivity.Year <= 9999) cm.Parameters.AddWithValue("@DTSActivity", dTSActivity); + cm.Parameters.AddWithValue("@LastChanged", lastChanged); + cm.Parameters.AddWithValue("@MachineName", machineName); + cm.Parameters.AddWithValue("@ProcessID", processID); + // Output Calculated Columns + SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); + param_LastChanged.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_LastChanged); + // CSLATODO: Define any additional output parameters + cm.ExecuteNonQuery(); + // Save all values being returned from the Procedure + return (byte[])cm.Parameters["@newLastChanged"].Value; + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.Update", ex); + throw new DbCslaException("Session.Update", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + protected override void DataPortal_DeleteSelf() + { + DataPortal_Delete(new PKCriteria(_SessionID)); + } + [Transactional(TransactionalTypes.TransactionScope)] + private void DataPortal_Delete(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.DataPortal_Delete", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "deleteSession"; + cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); + cm.ExecuteNonQuery(); + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.DataPortal_Delete", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("Session.DataPortal_Delete", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static void Remove(SqlConnection cn, int sessionID) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.Remove", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "deleteSession"; + // Input PK Fields + cm.Parameters.AddWithValue("@SessionID", sessionID); + // CSLATODO: Define any additional output parameters + cm.ExecuteNonQuery(); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.Remove", ex); + throw new DbCslaException("Session.Remove", ex); + } + } + #endregion + #region Exists + public static bool Exists(int sessionID) + { + ExistsCommand result; + try + { + result = DataPortal.Execute(new ExistsCommand(sessionID)); + return result.Exists; + } + catch (Exception ex) + { + throw new DbCslaException("Error on Session.Exists", ex); + } + } + [Serializable()] + private class ExistsCommand : CommandBase + { + private int _SessionID; + private bool _exists; + public bool Exists + { + get { return _exists; } + } + public ExistsCommand(int sessionID) + { + _SessionID = sessionID; + } + protected override void DataPortal_Execute() + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.DataPortal_Execute", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + cn.Open(); + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "existsSession"; + cm.Parameters.AddWithValue("@SessionID", _SessionID); + int count = (int)cm.ExecuteScalar(); + _exists = (count > 0); + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.DataPortal_Execute", ex); + throw new DbCslaException("Session.DataPortal_Execute", ex); + } + } + } + #endregion + // Standard Default Code + #region extension + SessionExtension _SessionExtension = new SessionExtension(); + [Serializable()] + partial class SessionExtension : extensionBase + { + } + [Serializable()] + class extensionBase + { + // Default Values + public virtual string DefaultUserID + { + get { return Environment.UserName.ToUpper(); } + } + public virtual DateTime DefaultDTSDtart + { + get { return DateTime.Now; } + } + public virtual DateTime DefaultDTSActivity + { + get { return DateTime.Now; } + } + // Authorization Rules + public virtual void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) + { + // Needs to be overriden to add new authorization rules + } + // Instance Authorization Rules + public virtual void AddInstanceAuthorizationRules(Csla.Security.AuthorizationRules rules) + { + // Needs to be overriden to add new authorization rules + } + // Validation Rules + public virtual void AddValidationRules(Csla.Validation.ValidationRules rules) + { + // Needs to be overriden to add new validation rules + } + // InstanceValidation Rules + public virtual void AddInstanceValidationRules(Csla.Validation.ValidationRules rules) + { + // Needs to be overriden to add new validation rules + } + } + #endregion + } // Class + #region Converter + internal class SessionConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is Session) + { + // Return the ToString value + return ((Session)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create SessionExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class Session +// { +// partial class SessionExtension : extensionBase +// { +// // CSLATODO: Override automatic defaults +// public virtual string DefaultUserID +// { +// get { return Environment.UserName.ToUpper(); } +// } +// public virtual DateTime DefaultDTSDtart +// { +// get { return DateTime.Now; } +// } +// public virtual DateTime DefaultDTSActivity +// { +// get { return DateTime.Now; } +// } +// public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) +// { +// //rules.AllowRead(Dbid, ""); +// } +// public new void AddInstanceAuthorizationRules(Csla.Security.AuthorizationRules rules) +// { +// //rules.AllowInstanceRead(Dbid, ""); +// } +// public new void AddValidationRules(Csla.Validation.ValidationRules rules) +// { +// rules.AddRule( +// Csla.Validation.CommonRules.StringMaxLength, +// new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); +// } +// public new void AddInstanceValidationRules(Csla.Validation.ValidationRules rules) +// { +// rules.AddInstanceRule(/* Instance Validation Rule */); +// } +// } +// } +//} diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/SessionInfo.cs b/PROMS/VEPROMS.CSLA.Library/Generated/SessionInfo.cs new file mode 100644 index 00000000..857d80b9 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/SessionInfo.cs @@ -0,0 +1,378 @@ +// ======================================================================== +// Copyright 2007 - Volian Enterprises, Inc. All rights reserved. +// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE +// ------------------------------------------------------------------------ +// $Workfile: $ $Revision: $ +// $Author: $ $Date: $ +// +// $History: $ +// ======================================================================== + +using System; +using System.Data; +using System.Data.SqlClient; +using Csla; +using Csla.Data; +using System.Configuration; +using System.IO; +using System.ComponentModel; +using System.Collections.Generic; +namespace VEPROMS.CSLA.Library +{ + public delegate void SessionInfoEvent(object sender); + /// + /// SessionInfo Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(SessionInfoConverter))] + public partial class SessionInfo : ReadOnlyBase, IDisposable + { + public event SessionInfoEvent Changed; + private void OnChange() + { + if (Changed != null) Changed(this); + } + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Collection + private static List _CacheList = new List(); + protected static void AddToCache(SessionInfo sessionInfo) + { + if (!_CacheList.Contains(sessionInfo)) _CacheList.Add(sessionInfo); // In AddToCache + } + protected static void RemoveFromCache(SessionInfo sessionInfo) + { + while (_CacheList.Contains(sessionInfo)) _CacheList.Remove(sessionInfo); // In RemoveFromCache + } + private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); + private static void ConvertListToDictionary() + { + while (_CacheList.Count > 0) // Move SessionInfo(s) from temporary _CacheList to _CacheByPrimaryKey + { + SessionInfo tmp = _CacheList[0]; // Get the first SessionInfo + string pKey = tmp.SessionID.ToString(); + if (!_CacheByPrimaryKey.ContainsKey(pKey)) + { + _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey + } + _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list + _CacheList.RemoveAt(0); // Remove the first SessionInfo + } + } + internal static void AddList(SessionInfoList lst) + { + foreach (SessionInfo item in lst) AddToCache(item); + } + protected static SessionInfo GetCachedByPrimaryKey(int sessionID) + { + ConvertListToDictionary(); + string key = sessionID.ToString(); + if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; + return null; + } + #endregion + #region Business Methods + private string _ErrorMessage = string.Empty; + public string ErrorMessage + { + get { return _ErrorMessage; } + } + protected Session _Editable; + private IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + if (_Editable != null) + hasBrokenRules = _Editable.HasBrokenRules; + return hasBrokenRules; + } + } + private int _SessionID; + [System.ComponentModel.DataObjectField(true, true)] + public int SessionID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("SessionID", true); + return _SessionID; + } + } + private string _UserID = string.Empty; + public string UserID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("UserID", true); + return _UserID; + } + } + private DateTime _DTSDtart = new DateTime(); + public DateTime DTSDtart + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DTSDtart", true); + return _DTSDtart; + } + } + private DateTime? _DTSEnd; + public DateTime? DTSEnd + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DTSEnd", true); + return _DTSEnd; + } + } + private DateTime _DTSActivity = new DateTime(); + public DateTime DTSActivity + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DTSActivity", true); + return _DTSActivity; + } + } + private string _MachineName = string.Empty; + public string MachineName + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MachineName", true); + return _MachineName; + } + } + private int _ProcessID; + public int ProcessID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ProcessID", true); + return _ProcessID; + } + } + // CSLATODO: Replace base SessionInfo.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current SessionInfo + //public override string ToString() + //{ + // return base.ToString(); + //} + // CSLATODO: Check SessionInfo.GetIdValue to assure that the ID returned is unique + /// + /// Overrides Base GetIdValue - Used internally by CSLA to determine equality + /// + /// A Unique ID for the current SessionInfo + protected override object GetIdValue() + { + return MySessionInfoUnique; // Absolutely Unique ID + } + #endregion + #region Factory Methods + private static int _SessionInfoUnique = 0; + private static int SessionInfoUnique + { get { return ++_SessionInfoUnique; } } + private int _MySessionInfoUnique = SessionInfoUnique; + public int MySessionInfoUnique // Absolutely Unique ID - Info + { get { return _MySessionInfoUnique; } } + protected SessionInfo() + {/* require use of factory methods */ + AddToCache(this); + } + 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; } } + ~SessionInfo() + { + _CountFinalized++; + } + public void Dispose() + { + if (_Disposed) return; + _CountDisposed++; + _Disposed = true; + RemoveFromCache(this); + if (!_CacheByPrimaryKey.ContainsKey(SessionID.ToString())) return; + List listSessionInfo = _CacheByPrimaryKey[SessionID.ToString()]; // Get the list of items + while (listSessionInfo.Contains(this)) listSessionInfo.Remove(this); // Remove the item from the list + if (listSessionInfo.Count == 0) // If there are no items left in the list + _CacheByPrimaryKey.Remove(SessionID.ToString()); // remove the list + } + public virtual Session Get() + { + return _Editable = Session.Get(_SessionID); + } + public static void Refresh(Session tmp) + { + string key = tmp.SessionID.ToString(); + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(key)) + foreach (SessionInfo tmpInfo in _CacheByPrimaryKey[key]) + tmpInfo.RefreshFields(tmp); + } + protected virtual void RefreshFields(Session tmp) + { + _UserID = tmp.UserID; + _DTSDtart = tmp.DTSDtart; + _DTSEnd = tmp.DTSEnd; + _DTSActivity = tmp.DTSActivity; + _MachineName = tmp.MachineName; + _ProcessID = tmp.ProcessID; + _SessionInfoExtension.Refresh(this); + OnChange();// raise an event + } + public static SessionInfo Get(int sessionID) + { + //if (!CanGetObject()) + // throw new System.Security.SecurityException("User not authorized to view a Session"); + try + { + SessionInfo tmp = GetCachedByPrimaryKey(sessionID); + if (tmp == null) + { + tmp = DataPortal.Fetch(new PKCriteria(sessionID)); + AddToCache(tmp); + } + if (tmp.ErrorMessage == "No Record Found") + { + tmp.Dispose(); // Clean-up SessionInfo + tmp = null; + } + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on SessionInfo.Get", ex); + } + } + #endregion + #region Data Access Portal + internal SessionInfo(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfo.Constructor", GetHashCode()); + try + { + ReadData(dr); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("SessionInfo.Constructor", ex); + throw new DbCslaException("SessionInfo.Constructor", ex); + } + } + [Serializable()] + protected class PKCriteria + { + private int _SessionID; + public int SessionID + { get { return _SessionID; } } + public PKCriteria(int sessionID) + { + _SessionID = sessionID; + } + } + private void ReadData(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfo.ReadData", GetHashCode()); + try + { + _SessionID = dr.GetInt32("SessionID"); + _UserID = dr.GetString("UserID"); + _DTSDtart = dr.GetDateTime("DTSDtart"); + if (!dr.IsDBNull(dr.GetOrdinal("DTSEnd"))) _DTSEnd = dr.GetDateTime("DTSEnd"); + _DTSActivity = dr.GetDateTime("DTSActivity"); + _MachineName = dr.GetString("MachineName"); + _ProcessID = dr.GetInt32("ProcessID"); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("SessionInfo.ReadData", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("SessionInfo.ReadData", ex); + } + } + private void DataPortal_Fetch(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfo.DataPortal_Fetch", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + ApplicationContext.LocalContext["cn"] = cn; + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getSession"; + cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + if (!dr.Read()) + { + _ErrorMessage = "No Record Found"; + return; + } + ReadData(dr); + } + } + // removing of item only needed for local data portal + if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) + ApplicationContext.LocalContext.Remove("cn"); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("SessionInfo.DataPortal_Fetch", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("SessionInfo.DataPortal_Fetch", ex); + } + } + #endregion + // Standard Refresh + #region extension + SessionInfoExtension _SessionInfoExtension = new SessionInfoExtension(); + [Serializable()] + partial class SessionInfoExtension : extensionBase { } + [Serializable()] + class extensionBase + { + // Default Refresh + public virtual void Refresh(SessionInfo tmp) { } + } + #endregion + } // Class + #region Converter + internal class SessionInfoConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is SessionInfo) + { + // Return the ToString value + return ((SessionInfo)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/SessionInfoList.cs b/PROMS/VEPROMS.CSLA.Library/Generated/SessionInfoList.cs new file mode 100644 index 00000000..75d8c7c0 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/SessionInfoList.cs @@ -0,0 +1,225 @@ +// ======================================================================== +// Copyright 2007 - Volian Enterprises, Inc. All rights reserved. +// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE +// ------------------------------------------------------------------------ +// $Workfile: $ $Revision: $ +// $Author: $ $Date: $ +// +// $History: $ +// ======================================================================== + +using System; +using System.Data; +using System.Data.SqlClient; +using Csla; +using Csla.Data; +using System.Configuration; +using System.IO; +using System.ComponentModel; +using System.Collections.Generic; +namespace VEPROMS.CSLA.Library +{ + /// + /// SessionInfoList Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(SessionInfoListConverter))] + public partial class SessionInfoList : ReadOnlyListBase, ICustomTypeDescriptor, IDisposable + { + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Business Methods + internal new IList Items + { get { return base.Items; } } + public void AddEvents() + { + foreach (SessionInfo tmp in this) + { + tmp.Changed += new SessionInfoEvent(tmp_Changed); + } + } + void tmp_Changed(object sender) + { + for (int i = 0; i < Count; i++) + { + if (base[i] == sender) + this.OnListChanged(new ListChangedEventArgs(ListChangedType.ItemChanged, i)); + } + } + 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; } } + ~SessionInfoList() + { + _CountFinalized++; + } + public void Dispose() + { + if (_Disposed) return; + _CountDisposed++; + _Disposed = true; + foreach (SessionInfo tmp in this) + { + tmp.Changed -= new SessionInfoEvent(tmp_Changed); + } + } + #endregion + #region Factory Methods + public static SessionInfoList _SessionInfoList = null; + /// + /// Return a list of all SessionInfo. + /// + public static SessionInfoList Get() + { + try + { + if (_SessionInfoList != null) + return _SessionInfoList; + SessionInfoList tmp = DataPortal.Fetch(); + SessionInfo.AddList(tmp); + tmp.AddEvents(); + _SessionInfoList = tmp; + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on SessionInfoList.Get", ex); + } + } + /// + /// Reset the list of all SessionInfo. + /// + public static void Reset() + { + _SessionInfoList = null; + } + // CSLATODO: Add alternative gets - + //public static SessionInfoList Get() + //{ + // try + // { + // return DataPortal.Fetch(new FilteredCriteria()); + // } + // catch (Exception ex) + // { + // throw new DbCslaException("Error on SessionInfoList.Get", ex); + // } + //} + private SessionInfoList() + { /* require use of factory methods */ } + #endregion + #region Data Access Portal + private void DataPortal_Fetch() + { + this.RaiseListChangedEvents = false; + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfoList.DataPortal_Fetch", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getSessions"; + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + IsReadOnly = false; + while (dr.Read()) this.Add(new SessionInfo(dr)); + IsReadOnly = true; + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("SessionInfoList.DataPortal_Fetch", ex); + throw new DbCslaException("SessionInfoList.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } + #endregion + #region ICustomTypeDescriptor impl + public String GetClassName() + { return TypeDescriptor.GetClassName(this, true); } + public AttributeCollection GetAttributes() + { return TypeDescriptor.GetAttributes(this, true); } + public String GetComponentName() + { return TypeDescriptor.GetComponentName(this, true); } + public TypeConverter GetConverter() + { return TypeDescriptor.GetConverter(this, true); } + public EventDescriptor GetDefaultEvent() + { return TypeDescriptor.GetDefaultEvent(this, true); } + public PropertyDescriptor GetDefaultProperty() + { return TypeDescriptor.GetDefaultProperty(this, true); } + public object GetEditor(Type editorBaseType) + { return TypeDescriptor.GetEditor(this, editorBaseType, true); } + public EventDescriptorCollection GetEvents(Attribute[] attributes) + { return TypeDescriptor.GetEvents(this, attributes, true); } + public EventDescriptorCollection GetEvents() + { return TypeDescriptor.GetEvents(this, true); } + public object GetPropertyOwner(PropertyDescriptor pd) + { return this; } + /// + /// Called to get the properties of this type. Returns properties with certain + /// attributes. this restriction is not implemented here. + /// + /// + /// + public PropertyDescriptorCollection GetProperties(Attribute[] attributes) + { return GetProperties(); } + /// + /// Called to get the properties of this type. + /// + /// + public PropertyDescriptorCollection GetProperties() + { + // Create a collection object to hold property descriptors + PropertyDescriptorCollection pds = new PropertyDescriptorCollection(null); + // Iterate the list + for (int i = 0; i < this.Items.Count; i++) + { + // Create a property descriptor for the item and add to the property descriptor collection + SessionInfoListPropertyDescriptor pd = new SessionInfoListPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class SessionInfoListPropertyDescriptor : vlnListPropertyDescriptor + { + private SessionInfo Item { get { return (SessionInfo)_Item; } } + public SessionInfoListPropertyDescriptor(SessionInfoList collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class SessionInfoListConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is SessionInfoList) + { + // Return department and department role separated by comma. + return ((SessionInfoList)value).Items.Count.ToString() + " Sessions"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace