diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/DROUsage.cs b/PROMS/VEPROMS.CSLA.Library/Generated/DROUsage.cs new file mode 100644 index 00000000..336645e5 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/DROUsage.cs @@ -0,0 +1,1138 @@ +// ======================================================================== +// 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 +{ + /// + /// DROUsage Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(DROUsageConverter))] + public partial class DROUsage : BusinessBase, IDisposable, IVEHasBrokenRules + { + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Refresh + private List _RefreshDROUsages = new List(); + private void AddToRefreshList(List refreshDROUsages) + { + if (IsDirty) + refreshDROUsages.Add(this); + } + private void BuildRefreshList() + { + _RefreshDROUsages = new List(); + AddToRefreshList(_RefreshDROUsages); + } + private void ProcessRefreshList() + { + foreach (DROUsage tmp in _RefreshDROUsages) + { + DROUsageInfo.Refresh(tmp); + if (tmp._MyDocument != null) DocumentInfo.Refresh(tmp._MyDocument); + if (tmp._MyRODb != null) RODbInfo.Refresh(tmp._MyRODb); + } + } + #endregion + #region Collection + private static List _CacheList = new List(); + protected static void AddToCache(DROUsage dROUsage) + { + if (!_CacheList.Contains(dROUsage)) _CacheList.Add(dROUsage); // In AddToCache + } + protected static void RemoveFromCache(DROUsage dROUsage) + { + while (_CacheList.Contains(dROUsage)) _CacheList.Remove(dROUsage); // In RemoveFromCache + } + private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); + private static void ConvertListToDictionary() + { + while (_CacheList.Count > 0) // Move DROUsage(s) from temporary _CacheList to _CacheByPrimaryKey + { + DROUsage tmp = _CacheList[0]; // Get the first DROUsage + string pKey = tmp.DROUsageID.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 DROUsage + } + } + protected static DROUsage GetCachedByPrimaryKey(int dROUsageID) + { + ConvertListToDictionary(); + string key = dROUsageID.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 _nextDROUsageID = -1; + public static int NextDROUsageID + { + get { return _nextDROUsageID--; } + } + private int _DROUsageID; + [System.ComponentModel.DataObjectField(true, true)] + public int DROUsageID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DROUsageID", true); + return _DROUsageID; + } + } + private int _DocID; + public int DocID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DocID", true); + if (_MyDocument != null) _DocID = _MyDocument.DocID; + return _DocID; + } + } + private Document _MyDocument; + public Document MyDocument + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyDocument", true); + if (_MyDocument == null && _DocID != 0) _MyDocument = Document.Get(_DocID); + return _MyDocument; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("MyDocument", true); + if (_MyDocument != value) + { + _MyDocument = value; + _DocID = value.DocID;// Update underlying data field + PropertyHasChanged(); + } + } + } + private string _ROID = string.Empty; + public string ROID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROID", true); + return _ROID; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("ROID", true); + if (value == null) value = string.Empty; + if (_ROID != value) + { + _ROID = value; + PropertyHasChanged(); + } + } + } + private string _Config = string.Empty; + public string Config + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Config", true); + return _Config; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("Config", true); + if (value == null) value = string.Empty; + if (_Config != value) + { + _Config = value; + PropertyHasChanged(); + } + } + } + private DateTime _DTS = new DateTime(); + public DateTime DTS + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DTS", true); + return _DTS; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("DTS", true); + if (_DTS != value) + { + _DTS = value; + PropertyHasChanged(); + } + } + } + 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 byte[] _LastChanged = new byte[8];//timestamp + private int _RODbID; + public int RODbID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("RODbID", true); + if (_MyRODb != null) _RODbID = _MyRODb.RODbID; + return _RODbID; + } + } + private RODb _MyRODb; + public RODb MyRODb + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyRODb", true); + if (_MyRODb == null && _RODbID != 0) _MyRODb = RODb.Get(_RODbID); + return _MyRODb; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("MyRODb", true); + if (_MyRODb != value) + { + _MyRODb = value; + _RODbID = value.RODbID;// Update underlying data field + PropertyHasChanged(); + } + } + } + public override bool IsDirty + { + get + { + if ( base.IsDirty ) + return true; + return IsDirtyList(new List()); + } + } + public bool IsDirtyList(List list) + { + if (base.IsDirty || list.Contains(this)) + return base.IsDirty; + list.Add(this); + return base.IsDirty || (_MyDocument == null ? false : _MyDocument.IsDirtyList(list)) || (_MyRODb == null ? false : _MyRODb.IsDirtyList(list)); + } + public override bool IsValid + { + get { return IsValidList(new List()); } + } + public bool IsValidList(List list) + { + if(list.Contains(this)) + return (IsNew && !IsDirty) ? true : base.IsValid; + list.Add(this); + return ((IsNew && !IsDirty) ? true : base.IsValid) && (_MyDocument == null ? true : _MyDocument.IsValidList(list)) && (_MyRODb == null ? true : _MyRODb.IsValidList(list)); + } + // CSLATODO: Replace base DROUsage.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current DROUsage + //public override string ToString() + //{ + // return base.ToString(); + //} + // CSLATODO: Check DROUsage.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 DROUsage + protected override object GetIdValue() + { + return MyDROUsageUnique; // 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; + if (_MyDocument != null && (hasBrokenRules = _MyDocument.HasBrokenRules) != null) return hasBrokenRules; + if (_MyRODb != null && (hasBrokenRules = _MyRODb.HasBrokenRules) != null) return hasBrokenRules; + 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(MyDocumentRequired, "MyDocument"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringRequired, "ROID"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("ROID", 16)); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringRequired, "UserID"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); + ValidationRules.AddRule(MyRODbRequired, "MyRODb"); + //ValidationRules.AddDependantProperty("x", "y"); + _DROUsageExtension.AddValidationRules(ValidationRules); + // CSLATODO: Add other validation rules + } + protected override void AddInstanceBusinessRules() + { + _DROUsageExtension.AddInstanceValidationRules(ValidationRules); + // CSLATODO: Add other validation rules + } + private static bool MyDocumentRequired(DROUsage target, Csla.Validation.RuleArgs e) + { + if (target._DocID == 0 && target._MyDocument == null) // Required field missing + { + e.Description = "Required"; + return false; + } + return true; + } + private static bool MyRODbRequired(DROUsage target, Csla.Validation.RuleArgs e) + { + if (target._RODbID == 0 && target._MyRODb == null) // Required field missing + { + e.Description = "Required"; + return false; + } + return true; + } + // 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(DROUsageID, ""); + //AuthorizationRules.AllowRead(DocID, ""); + //AuthorizationRules.AllowRead(ROID, ""); + //AuthorizationRules.AllowRead(Config, ""); + //AuthorizationRules.AllowRead(DTS, ""); + //AuthorizationRules.AllowRead(UserID, ""); + //AuthorizationRules.AllowRead(RODbID, ""); + //AuthorizationRules.AllowWrite(DocID, ""); + //AuthorizationRules.AllowWrite(ROID, ""); + //AuthorizationRules.AllowWrite(Config, ""); + //AuthorizationRules.AllowWrite(DTS, ""); + //AuthorizationRules.AllowWrite(UserID, ""); + //AuthorizationRules.AllowWrite(RODbID, ""); + _DROUsageExtension.AddAuthorizationRules(AuthorizationRules); + } + protected override void AddInstanceAuthorizationRules() + { + //CSLATODO: Who can read/write which fields + _DROUsageExtension.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 _DROUsageUnique = 0; + protected static int DROUsageUnique + { get { return ++_DROUsageUnique; } } + private int _MyDROUsageUnique = DROUsageUnique; + public int MyDROUsageUnique // Absolutely Unique ID - Editable + { get { return _MyDROUsageUnique; } } + protected DROUsage() + {/* require use of factory methods */ + AddToCache(this); + } + public void Dispose() + { + RemoveFromDictionaries(); + } + private void RemoveFromDictionaries() + { + RemoveFromCache(this); + if (_CacheByPrimaryKey.ContainsKey(DROUsageID.ToString())) + { + List listDROUsage = _CacheByPrimaryKey[DROUsageID.ToString()]; // Get the list of items + while (listDROUsage.Contains(this)) listDROUsage.Remove(this); // Remove the item from the list + if (listDROUsage.Count == 0) //If there are no items left in the list + _CacheByPrimaryKey.Remove(DROUsageID.ToString()); // remove the list + } + } + public static DROUsage New() + { + if (!CanAddObject()) + throw new System.Security.SecurityException("User not authorized to add a DROUsage"); + try + { + return DataPortal.Create(); + } + catch (Exception ex) + { + throw new DbCslaException("Error on DROUsage.New", ex); + } + } + public static DROUsage New(string roid, RODb myRODb) + { + DROUsage tmp = DROUsage.New(); + tmp.ROID = roid; + tmp.MyRODb = myRODb; + return tmp; + } + public static DROUsage New(Document myDocument, string roid, string config, DateTime dts, string userID, RODb myRODb) + { + DROUsage tmp = DROUsage.New(); + tmp.MyDocument = myDocument; + tmp.ROID = roid; + tmp.Config = config; + tmp.DTS = dts; + tmp.UserID = userID; + tmp.MyRODb = myRODb; + return tmp; + } + public static DROUsage MakeDROUsage(Document myDocument, string roid, string config, DateTime dts, string userID, RODb myRODb) + { + DROUsage tmp = DROUsage.New(myDocument, roid, config, dts, userID, myRODb); + if (tmp.IsSavable) + { + DROUsage tmp2 = tmp; + tmp = tmp2.Save(); + tmp2.Dispose(); + } + 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 DROUsage New(Document myDocument, string roid, string config, RODb myRODb) + { + DROUsage tmp = DROUsage.New(); + tmp.MyDocument = myDocument; + tmp.ROID = roid; + tmp.Config = config; + tmp.MyRODb = myRODb; + return tmp; + } + public static DROUsage MakeDROUsage(Document myDocument, string roid, string config, RODb myRODb) + { + DROUsage tmp = DROUsage.New(myDocument, roid, config, myRODb); + if (tmp.IsSavable) + { + DROUsage tmp2 = tmp; + tmp = tmp2.Save(); + tmp2.Dispose(); + } + 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 DROUsage Get(int dROUsageID) + { + if (!CanGetObject()) + throw new System.Security.SecurityException("User not authorized to view a DROUsage"); + try + { + DROUsage tmp = GetCachedByPrimaryKey(dROUsageID); + if (tmp == null) + { + tmp = DataPortal.Fetch(new PKCriteria(dROUsageID)); + AddToCache(tmp); + } + if (tmp.ErrorMessage == "No Record Found") + { + tmp.Dispose(); // Clean-up DROUsage + tmp = null; + } + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on DROUsage.Get", ex); + } + } + public static DROUsage Get(SafeDataReader dr) + { + if (dr.Read()) return new DROUsage(dr); + return null; + } + internal DROUsage(SafeDataReader dr) + { + ReadData(dr); + } + public static void Delete(int dROUsageID) + { + if (!CanDeleteObject()) + throw new System.Security.SecurityException("User not authorized to remove a DROUsage"); + try + { + DataPortal.Delete(new PKCriteria(dROUsageID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on DROUsage.Delete", ex); + } + } + public override DROUsage Save() + { + if (IsDeleted && !CanDeleteObject()) + throw new System.Security.SecurityException("User not authorized to remove a DROUsage"); + else if (IsNew && !CanAddObject()) + throw new System.Security.SecurityException("User not authorized to add a DROUsage"); + else if (!CanEditObject()) + throw new System.Security.SecurityException("User not authorized to update a DROUsage"); + try + { + BuildRefreshList(); + DROUsage dROUsage = base.Save(); + RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache + AddToCache(dROUsage);//Refresh the item in AllList + ProcessRefreshList(); + return dROUsage; + } + catch (Exception ex) + { + throw new DbCslaException("Error on CSLA Save", ex); + } + } + #endregion + #region Data Access Portal + [Serializable()] + protected class PKCriteria + { + private int _DROUsageID; + public int DROUsageID + { get { return _DROUsageID; } } + public PKCriteria(int dROUsageID) + { + _DROUsageID = dROUsageID; + } + } + // CSLATODO: If Create needs to access DB - It should not be marked RunLocal + [RunLocal()] + private new void DataPortal_Create() + { + _DROUsageID = NextDROUsageID; + // Database Defaults + _DocID = _DROUsageExtension.DefaultDocID; + _DTS = _DROUsageExtension.DefaultDTS; + _UserID = _DROUsageExtension.DefaultUserID; + // CSLATODO: Add any defaults that are necessary + ValidationRules.CheckRules(); + } + private void ReadData(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsage.ReadData", GetHashCode()); + try + { + _DROUsageID = dr.GetInt32("DROUsageID"); + _DocID = dr.GetInt32("DocID"); + _ROID = dr.GetString("ROID"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + _RODbID = dr.GetInt32("RODbID"); + MarkOld(); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsage.ReadData", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("DROUsage.ReadData", ex); + } + } + private void DataPortal_Fetch(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsage.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 = "getDROUsage"; + cm.Parameters.AddWithValue("@DROUsageID", criteria.DROUsageID); + 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("DROUsage.DataPortal_Fetch", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("DROUsage.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("DROUsage.DataPortal_Insert", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("DROUsage.DataPortal_Insert", ex); + } + finally + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsage.DataPortal_Insert", GetHashCode()); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + internal void SQLInsert() + { + if (!this.IsDirty) return; + try + { + if (_MyDocument != null) _MyDocument.Update(); + if (_MyRODb != null) _MyRODb.Update(); + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "addDROUsage"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@DocID", DocID); + cm.Parameters.AddWithValue("@ROID", _ROID); + cm.Parameters.AddWithValue("@Config", _Config); + if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); + cm.Parameters.AddWithValue("@UserID", _UserID); + cm.Parameters.AddWithValue("@RODbID", RODbID); + // Output Calculated Columns + SqlParameter param_DROUsageID = new SqlParameter("@newDROUsageID", SqlDbType.Int); + param_DROUsageID.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_DROUsageID); + 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 + _DROUsageID = (int)cm.Parameters["@newDROUsageID"].Value; + _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; + } + MarkOld(); + // update child objects + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsage.SQLInsert", GetHashCode()); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsage.SQLInsert", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("DROUsage.SQLInsert", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static byte[] Add(SqlConnection cn, ref int dROUsageID, Document myDocument, string roid, string config, DateTime dts, string userID, RODb myRODb) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsage.Add", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "addDROUsage"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@DocID", myDocument.DocID); + cm.Parameters.AddWithValue("@ROID", roid); + cm.Parameters.AddWithValue("@Config", config); + if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); + cm.Parameters.AddWithValue("@UserID", userID); + cm.Parameters.AddWithValue("@RODbID", myRODb.RODbID); + // Output Calculated Columns + SqlParameter param_DROUsageID = new SqlParameter("@newDROUsageID", SqlDbType.Int); + param_DROUsageID.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_DROUsageID); + 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 + dROUsageID = (int)cm.Parameters["@newDROUsageID"].Value; + return (byte[])cm.Parameters["@newLastChanged"].Value; + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsage.Add", ex); + throw new DbCslaException("DROUsage.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}] DROUsage.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("DROUsage.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}] DROUsage.SQLUpdate", GetHashCode()); + try + { + if (_MyDocument != null) _MyDocument.Update(); + if (_MyRODb != null) _MyRODb.Update(); + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + if (base.IsDirty) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "updateDROUsage"; + // All Fields including Calculated Fields + cm.Parameters.AddWithValue("@DROUsageID", _DROUsageID); + cm.Parameters.AddWithValue("@DocID", DocID); + cm.Parameters.AddWithValue("@ROID", _ROID); + cm.Parameters.AddWithValue("@Config", _Config); + if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); + cm.Parameters.AddWithValue("@UserID", _UserID); + cm.Parameters.AddWithValue("@LastChanged", _LastChanged); + cm.Parameters.AddWithValue("@RODbID", RODbID); + // 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("DROUsage.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 = DROUsage.Add(cn, ref _DROUsageID, _MyDocument, _ROID, _Config, _DTS, _UserID, _MyRODb); + else + _LastChanged = DROUsage.Update(cn, ref _DROUsageID, _DocID, _ROID, _Config, _DTS, _UserID, ref _LastChanged, _RODbID); + MarkOld(); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static byte[] Update(SqlConnection cn, ref int dROUsageID, int docID, string roid, string config, DateTime dts, string userID, ref byte[] lastChanged, int rODbID) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsage.Update", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "updateDROUsage"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@DROUsageID", dROUsageID); + cm.Parameters.AddWithValue("@DocID", docID); + cm.Parameters.AddWithValue("@ROID", roid); + cm.Parameters.AddWithValue("@Config", config); + if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); + cm.Parameters.AddWithValue("@UserID", userID); + cm.Parameters.AddWithValue("@LastChanged", lastChanged); + cm.Parameters.AddWithValue("@RODbID", rODbID); + // 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("DROUsage.Update", ex); + throw new DbCslaException("DROUsage.Update", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + protected override void DataPortal_DeleteSelf() + { + DataPortal_Delete(new PKCriteria(_DROUsageID)); + } + [Transactional(TransactionalTypes.TransactionScope)] + private void DataPortal_Delete(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsage.DataPortal_Delete", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "deleteDROUsage"; + cm.Parameters.AddWithValue("@DROUsageID", criteria.DROUsageID); + cm.ExecuteNonQuery(); + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsage.DataPortal_Delete", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("DROUsage.DataPortal_Delete", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static void Remove(SqlConnection cn, int dROUsageID) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsage.Remove", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "deleteDROUsage"; + // Input PK Fields + cm.Parameters.AddWithValue("@DROUsageID", dROUsageID); + // CSLATODO: Define any additional output parameters + cm.ExecuteNonQuery(); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsage.Remove", ex); + throw new DbCslaException("DROUsage.Remove", ex); + } + } + #endregion + #region Exists + public static bool Exists(int dROUsageID) + { + ExistsCommand result; + try + { + result = DataPortal.Execute(new ExistsCommand(dROUsageID)); + return result.Exists; + } + catch (Exception ex) + { + throw new DbCslaException("Error on DROUsage.Exists", ex); + } + } + [Serializable()] + private class ExistsCommand : CommandBase + { + private int _DROUsageID; + private bool _exists; + public bool Exists + { + get { return _exists; } + } + public ExistsCommand(int dROUsageID) + { + _DROUsageID = dROUsageID; + } + protected override void DataPortal_Execute() + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsage.DataPortal_Execute", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + cn.Open(); + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "existsDROUsage"; + cm.Parameters.AddWithValue("@DROUsageID", _DROUsageID); + int count = (int)cm.ExecuteScalar(); + _exists = (count > 0); + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsage.DataPortal_Execute", ex); + throw new DbCslaException("DROUsage.DataPortal_Execute", ex); + } + } + } + #endregion + // Standard Default Code + #region extension + DROUsageExtension _DROUsageExtension = new DROUsageExtension(); + [Serializable()] + partial class DROUsageExtension : extensionBase + { + } + [Serializable()] + class extensionBase + { + // Default Values + public virtual int DefaultDocID + { + get { return 0; } + } + public virtual DateTime DefaultDTS + { + get { return DateTime.Now; } + } + public virtual string DefaultUserID + { + get { return Environment.UserName.ToUpper(); } + } + // 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 DROUsageConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is DROUsage) + { + // Return the ToString value + return ((DROUsage)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create DROUsageExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class DROUsage +// { +// partial class DROUsageExtension : extensionBase +// { +// // CSLATODO: Override automatic defaults +// public virtual int DefaultDocID +// { +// get { return 0; } +// } +// public virtual DateTime DefaultDTS +// { +// get { return DateTime.Now; } +// } +// public virtual string DefaultUserID +// { +// get { return Environment.UserName.ToUpper(); } +// } +// 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/DROUsageInfo.cs b/PROMS/VEPROMS.CSLA.Library/Generated/DROUsageInfo.cs new file mode 100644 index 00000000..54f726cb --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/DROUsageInfo.cs @@ -0,0 +1,490 @@ +// ======================================================================== +// 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 DROUsageInfoEvent(object sender); + /// + /// DROUsageInfo Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(DROUsageInfoConverter))] + public partial class DROUsageInfo : ReadOnlyBase, IDisposable + { + public event DROUsageInfoEvent 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(DROUsageInfo dROUsageInfo) + { + if (!_CacheList.Contains(dROUsageInfo)) _CacheList.Add(dROUsageInfo); // In AddToCache + } + protected static void RemoveFromCache(DROUsageInfo dROUsageInfo) + { + while (_CacheList.Contains(dROUsageInfo)) _CacheList.Remove(dROUsageInfo); // In RemoveFromCache + } + private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); + private static void ConvertListToDictionary() + { + while (_CacheList.Count > 0) // Move DROUsageInfo(s) from temporary _CacheList to _CacheByPrimaryKey + { + DROUsageInfo tmp = _CacheList[0]; // Get the first DROUsageInfo + string pKey = tmp.DROUsageID.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 DROUsageInfo + } + } + internal static void AddList(DROUsageInfoList lst) + { + foreach (DROUsageInfo item in lst) AddToCache(item); + } + protected static DROUsageInfo GetCachedByPrimaryKey(int dROUsageID) + { + ConvertListToDictionary(); + string key = dROUsageID.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 DROUsage _Editable; + private IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + if (_Editable != null) + hasBrokenRules = _Editable.HasBrokenRules; + return hasBrokenRules; + } + } + private int _DROUsageID; + [System.ComponentModel.DataObjectField(true, true)] + public int DROUsageID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DROUsageID", true); + return _DROUsageID; + } + } + private int _DocID; + public int DocID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DocID", true); + if (_MyDocument != null) _DocID = _MyDocument.DocID; + return _DocID; + } + } + private DocumentInfo _MyDocument; + public DocumentInfo MyDocument + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyDocument", true); + if (_MyDocument == null && _DocID != 0) _MyDocument = DocumentInfo.Get(_DocID); + return _MyDocument; + } + } + private string _ROID = string.Empty; + public string ROID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROID", true); + return _ROID; + } + } + private string _Config = string.Empty; + public string Config + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Config", true); + return _Config; + } + } + private DateTime _DTS = new DateTime(); + public DateTime DTS + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DTS", true); + return _DTS; + } + } + private string _UserID = string.Empty; + public string UserID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("UserID", true); + return _UserID; + } + } + private int _RODbID; + public int RODbID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("RODbID", true); + if (_MyRODb != null) _RODbID = _MyRODb.RODbID; + return _RODbID; + } + } + private RODbInfo _MyRODb; + public RODbInfo MyRODb + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyRODb", true); + if (_MyRODb == null && _RODbID != 0) _MyRODb = RODbInfo.Get(_RODbID); + return _MyRODb; + } + } + // CSLATODO: Replace base DROUsageInfo.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current DROUsageInfo + //public override string ToString() + //{ + // return base.ToString(); + //} + // CSLATODO: Check DROUsageInfo.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 DROUsageInfo + protected override object GetIdValue() + { + return MyDROUsageInfoUnique; // Absolutely Unique ID + } + #endregion + #region Factory Methods + private static int _DROUsageInfoUnique = 0; + private static int DROUsageInfoUnique + { get { return ++_DROUsageInfoUnique; } } + private int _MyDROUsageInfoUnique = DROUsageInfoUnique; + public int MyDROUsageInfoUnique // Absolutely Unique ID - Info + { get { return _MyDROUsageInfoUnique; } } + protected DROUsageInfo() + {/* require use of factory methods */ + AddToCache(this); + } + public void Dispose() + { + RemoveFromCache(this); + if (!_CacheByPrimaryKey.ContainsKey(DROUsageID.ToString())) return; + List listDROUsageInfo = _CacheByPrimaryKey[DROUsageID.ToString()]; // Get the list of items + while (listDROUsageInfo.Contains(this)) listDROUsageInfo.Remove(this); // Remove the item from the list + if (listDROUsageInfo.Count == 0) // If there are no items left in the list + _CacheByPrimaryKey.Remove(DROUsageID.ToString()); // remove the list + } + public virtual DROUsage Get() + { + return _Editable = DROUsage.Get(_DROUsageID); + } + public static void Refresh(DROUsage tmp) + { + string key = tmp.DROUsageID.ToString(); + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(key)) + foreach (DROUsageInfo tmpInfo in _CacheByPrimaryKey[key]) + tmpInfo.RefreshFields(tmp); + } + protected virtual void RefreshFields(DROUsage tmp) + { + if (_DocID != tmp.DocID) + { + if (MyDocument != null) MyDocument.RefreshDocumentDROUsages(); // Update List for old value + _DocID = tmp.DocID; // Update the value + } + _MyDocument = null; // Reset list so that the next line gets a new list + if (MyDocument != null) MyDocument.RefreshDocumentDROUsages(); // Update List for new value + _ROID = tmp.ROID; + _Config = tmp.Config; + _DTS = tmp.DTS; + _UserID = tmp.UserID; + if (_RODbID != tmp.RODbID) + { + if (MyRODb != null) MyRODb.RefreshRODbDROUsages(); // Update List for old value + _RODbID = tmp.RODbID; // Update the value + } + _MyRODb = null; // Reset list so that the next line gets a new list + if (MyRODb != null) MyRODb.RefreshRODbDROUsages(); // Update List for new value + _DROUsageInfoExtension.Refresh(this); +//RHM Removed 20090724 - Duplicates function of code above. +// - Dispose caused error when a new step was added. +// - Resequence of transitions did not work properly. +// if(_MyDocument != null) +// { +// _MyDocument.Dispose();// Dispose related value +// _MyDocument = null;// Reset related value +// } +//RHM Removed 20090724 - Duplicates function of code above. +// - Dispose caused error when a new step was added. +// - Resequence of transitions did not work properly. +// if(_MyRODb != null) +// { +// _MyRODb.Dispose();// Dispose related value +// _MyRODb = null;// Reset related value +// } + OnChange();// raise an event + } + public static void Refresh(DocumentDROUsage tmp) + { + string key = tmp.DROUsageID.ToString(); + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(key)) + foreach (DROUsageInfo tmpInfo in _CacheByPrimaryKey[key]) + tmpInfo.RefreshFields(tmp); + } + protected virtual void RefreshFields(DocumentDROUsage tmp) + { + _ROID = tmp.ROID; + _Config = tmp.Config; + _DTS = tmp.DTS; + _UserID = tmp.UserID; + if (_RODbID != tmp.RODbID) + { + if (MyRODb != null) MyRODb.RefreshRODbDROUsages(); // Update List for old value + _RODbID = tmp.RODbID; // Update the value + } + _MyRODb = null; // Reset list so that the next line gets a new list + if (MyRODb != null) MyRODb.RefreshRODbDROUsages(); // Update List for new value + _DROUsageInfoExtension.Refresh(this); +//RHM Removed 20090724 - Duplicates function of code above. +// - Dispose caused error when a new step was added. +// - Resequence of transitions did not work properly. +// if(_MyDocument != null) +// { +// _MyDocument.Dispose();// Dispose related value +// _MyDocument = null;// Reset related value +// } +//RHM Removed 20090724 - Duplicates function of code above. +// - Dispose caused error when a new step was added. +// - Resequence of transitions did not work properly. +// if(_MyRODb != null) +// { +// _MyRODb.Dispose();// Dispose related value +// _MyRODb = null;// Reset related value +// } + OnChange();// raise an event + } + public static void Refresh(RODbDROUsage tmp) + { + string key = tmp.DROUsageID.ToString(); + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(key)) + foreach (DROUsageInfo tmpInfo in _CacheByPrimaryKey[key]) + tmpInfo.RefreshFields(tmp); + } + protected virtual void RefreshFields(RODbDROUsage tmp) + { + if (_DocID != tmp.DocID) + { + if (MyDocument != null) MyDocument.RefreshDocumentDROUsages(); // Update List for old value + _DocID = tmp.DocID; // Update the value + } + _MyDocument = null; // Reset list so that the next line gets a new list + if (MyDocument != null) MyDocument.RefreshDocumentDROUsages(); // Update List for new value + _ROID = tmp.ROID; + _Config = tmp.Config; + _DTS = tmp.DTS; + _UserID = tmp.UserID; + _DROUsageInfoExtension.Refresh(this); +//RHM Removed 20090724 - Duplicates function of code above. +// - Dispose caused error when a new step was added. +// - Resequence of transitions did not work properly. +// if(_MyDocument != null) +// { +// _MyDocument.Dispose();// Dispose related value +// _MyDocument = null;// Reset related value +// } +//RHM Removed 20090724 - Duplicates function of code above. +// - Dispose caused error when a new step was added. +// - Resequence of transitions did not work properly. +// if(_MyRODb != null) +// { +// _MyRODb.Dispose();// Dispose related value +// _MyRODb = null;// Reset related value +// } + OnChange();// raise an event + } + public static DROUsageInfo Get(int dROUsageID) + { + //if (!CanGetObject()) + // throw new System.Security.SecurityException("User not authorized to view a DROUsage"); + try + { + DROUsageInfo tmp = GetCachedByPrimaryKey(dROUsageID); + if (tmp == null) + { + tmp = DataPortal.Fetch(new PKCriteria(dROUsageID)); + AddToCache(tmp); + } + if (tmp.ErrorMessage == "No Record Found") + { + tmp.Dispose(); // Clean-up DROUsageInfo + tmp = null; + } + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on DROUsageInfo.Get", ex); + } + } + #endregion + #region Data Access Portal + internal DROUsageInfo(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsageInfo.Constructor", GetHashCode()); + try + { + ReadData(dr); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsageInfo.Constructor", ex); + throw new DbCslaException("DROUsageInfo.Constructor", ex); + } + } + [Serializable()] + protected class PKCriteria + { + private int _DROUsageID; + public int DROUsageID + { get { return _DROUsageID; } } + public PKCriteria(int dROUsageID) + { + _DROUsageID = dROUsageID; + } + } + private void ReadData(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsageInfo.ReadData", GetHashCode()); + try + { + _DROUsageID = dr.GetInt32("DROUsageID"); + _DocID = dr.GetInt32("DocID"); + _ROID = dr.GetString("ROID"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + _RODbID = dr.GetInt32("RODbID"); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsageInfo.ReadData", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("DROUsageInfo.ReadData", ex); + } + } + private void DataPortal_Fetch(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsageInfo.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 = "getDROUsage"; + cm.Parameters.AddWithValue("@DROUsageID", criteria.DROUsageID); + 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("DROUsageInfo.DataPortal_Fetch", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("DROUsageInfo.DataPortal_Fetch", ex); + } + } + #endregion + // Standard Refresh + #region extension + DROUsageInfoExtension _DROUsageInfoExtension = new DROUsageInfoExtension(); + [Serializable()] + partial class DROUsageInfoExtension : extensionBase { } + [Serializable()] + class extensionBase + { + // Default Refresh + public virtual void Refresh(DROUsageInfo tmp) { } + } + #endregion + } // Class + #region Converter + internal class DROUsageInfoConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is DROUsageInfo) + { + // Return the ToString value + return ((DROUsageInfo)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/DROUsageInfoList.cs b/PROMS/VEPROMS.CSLA.Library/Generated/DROUsageInfoList.cs new file mode 100644 index 00000000..81a62b48 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/DROUsageInfoList.cs @@ -0,0 +1,319 @@ +// ======================================================================== +// 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 +{ + /// + /// DROUsageInfoList Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(DROUsageInfoListConverter))] + public partial class DROUsageInfoList : 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 (DROUsageInfo tmp in this) + { + tmp.Changed += new DROUsageInfoEvent(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)); + } + } + public void Dispose() + { + foreach (DROUsageInfo tmp in this) + { + tmp.Changed -= new DROUsageInfoEvent(tmp_Changed); + } + } + #endregion + #region Factory Methods + public static DROUsageInfoList _DROUsageInfoList = null; + /// + /// Return a list of all DROUsageInfo. + /// + public static DROUsageInfoList Get() + { + try + { + if (_DROUsageInfoList != null) + return _DROUsageInfoList; + DROUsageInfoList tmp = DataPortal.Fetch(); + DROUsageInfo.AddList(tmp); + tmp.AddEvents(); + _DROUsageInfoList = tmp; + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on DROUsageInfoList.Get", ex); + } + } + /// + /// Reset the list of all DROUsageInfo. + /// + public static void Reset() + { + _DROUsageInfoList = null; + } + // CSLATODO: Add alternative gets - + //public static DROUsageInfoList Get() + //{ + // try + // { + // return DataPortal.Fetch(new FilteredCriteria()); + // } + // catch (Exception ex) + // { + // throw new DbCslaException("Error on DROUsageInfoList.Get", ex); + // } + //} + public static DROUsageInfoList GetByDocID(int docID) + { + try + { + DROUsageInfoList tmp = DataPortal.Fetch(new DocIDCriteria(docID)); + DROUsageInfo.AddList(tmp); + tmp.AddEvents(); + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on DROUsageInfoList.GetByDocID", ex); + } + } + public static DROUsageInfoList GetByRODbID(int rODbID) + { + try + { + DROUsageInfoList tmp = DataPortal.Fetch(new RODbIDCriteria(rODbID)); + DROUsageInfo.AddList(tmp); + tmp.AddEvents(); + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on DROUsageInfoList.GetByRODbID", ex); + } + } + private DROUsageInfoList() + { /* require use of factory methods */ } + #endregion + #region Data Access Portal + private void DataPortal_Fetch() + { + this.RaiseListChangedEvents = false; + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsageInfoList.DataPortal_Fetch", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getDROUsages"; + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + IsReadOnly = false; + while (dr.Read()) this.Add(new DROUsageInfo(dr)); + IsReadOnly = true; + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsageInfoList.DataPortal_Fetch", ex); + throw new DbCslaException("DROUsageInfoList.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } + [Serializable()] + private class DocIDCriteria + { + public DocIDCriteria(int docID) + { + _DocID = docID; + } + private int _DocID; + public int DocID + { + get { return _DocID; } + set { _DocID = value; } + } + } + private void DataPortal_Fetch(DocIDCriteria criteria) + { + this.RaiseListChangedEvents = false; + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsageInfoList.DataPortal_FetchDocID", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getDROUsagesByDocID"; + cm.Parameters.AddWithValue("@DocID", criteria.DocID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + IsReadOnly = false; + while (dr.Read()) this.Add(new DROUsageInfo(dr)); + IsReadOnly = true; + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsageInfoList.DataPortal_FetchDocID", ex); + throw new DbCslaException("DROUsageInfoList.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } + [Serializable()] + private class RODbIDCriteria + { + public RODbIDCriteria(int rODbID) + { + _RODbID = rODbID; + } + private int _RODbID; + public int RODbID + { + get { return _RODbID; } + set { _RODbID = value; } + } + } + private void DataPortal_Fetch(RODbIDCriteria criteria) + { + this.RaiseListChangedEvents = false; + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsageInfoList.DataPortal_FetchRODbID", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getDROUsagesByRODbID"; + cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + IsReadOnly = false; + while (dr.Read()) this.Add(new DROUsageInfo(dr)); + IsReadOnly = true; + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsageInfoList.DataPortal_FetchRODbID", ex); + throw new DbCslaException("DROUsageInfoList.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 + DROUsageInfoListPropertyDescriptor pd = new DROUsageInfoListPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class DROUsageInfoListPropertyDescriptor : vlnListPropertyDescriptor + { + private DROUsageInfo Item { get { return (DROUsageInfo)_Item; } } + public DROUsageInfoListPropertyDescriptor(DROUsageInfoList collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class DROUsageInfoListConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is DROUsageInfoList) + { + // Return department and department role separated by comma. + return ((DROUsageInfoList)value).Items.Count.ToString() + " DROUsages"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/DocumentDROUsage.cs b/PROMS/VEPROMS.CSLA.Library/Generated/DocumentDROUsage.cs new file mode 100644 index 00000000..30d24cc3 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/DocumentDROUsage.cs @@ -0,0 +1,612 @@ +// ======================================================================== +// 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 +{ + /// + /// DocumentDROUsage Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(DocumentDROUsageConverter))] + public partial class DocumentDROUsage : BusinessBase, IVEHasBrokenRules + { + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Business Methods + private string _ErrorMessage = string.Empty; + public string ErrorMessage + { + get { return _ErrorMessage; } + } + private int _DROUsageID; + [System.ComponentModel.DataObjectField(true, true)] + public int DROUsageID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DROUsageID", true); + if (_MyDROUsage != null) _DROUsageID = _MyDROUsage.DROUsageID; + return _DROUsageID; + } + } + private DROUsage _MyDROUsage; + [System.ComponentModel.DataObjectField(true, true)] + public DROUsage MyDROUsage + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyDROUsage", true); + if (_MyDROUsage == null && _DROUsageID != 0) _MyDROUsage = DROUsage.Get(_DROUsageID); + return _MyDROUsage; + } + } + private string _ROID = string.Empty; + public string ROID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROID", true); + return _ROID; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("ROID", true); + if (value == null) value = string.Empty; + if (_ROID != value) + { + _ROID = value; + PropertyHasChanged(); + } + } + } + private string _Config = string.Empty; + public string Config + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Config", true); + return _Config; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("Config", true); + if (value == null) value = string.Empty; + if (_Config != value) + { + _Config = value; + PropertyHasChanged(); + } + } + } + private DateTime _DTS = new DateTime(); + public DateTime DTS + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DTS", true); + return _DTS; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("DTS", true); + if (_DTS != value) + { + _DTS = value; + PropertyHasChanged(); + } + } + } + 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 byte[] _LastChanged = new byte[8];//timestamp + private int _RODbID; + public int RODbID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("RODbID", true); + if (_MyRODb != null) _RODbID = _MyRODb.RODbID; + return _RODbID; + } + } + private RODb _MyRODb; + public RODb MyRODb + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyRODb", true); + if (_MyRODb == null && _RODbID != 0) _MyRODb = RODb.Get(_RODbID); + return _MyRODb; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("MyRODb", true); + if (_MyRODb != value) + { + _MyRODb = value; + _RODbID = value.RODbID;// Update underlying data field + PropertyHasChanged(); + } + } + } + private string _RODb_ROName = string.Empty; + /// + /// Hook for future - to allow the user to select multiple RO Databases assocaiated with on DocVersion + /// + public string RODb_ROName + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("RODb_ROName", true); + return _RODb_ROName; + } + } + private string _RODb_FolderPath = string.Empty; + /// + /// Path to the RO database + /// + public string RODb_FolderPath + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("RODb_FolderPath", true); + return _RODb_FolderPath; + } + } + private string _RODb_DBConnectionString = string.Empty; + /// + /// Connection String - Default could just be the full path and name of the database + /// + public string RODb_DBConnectionString + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("RODb_DBConnectionString", true); + return _RODb_DBConnectionString; + } + } + private string _RODb_Config = string.Empty; + public string RODb_Config + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("RODb_Config", true); + return _RODb_Config; + } + } + private DateTime _RODb_DTS = new DateTime(); + public DateTime RODb_DTS + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("RODb_DTS", true); + return _RODb_DTS; + } + } + private string _RODb_UserID = string.Empty; + public string RODb_UserID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("RODb_UserID", true); + return _RODb_UserID; + } + } + // CSLATODO: Check DocumentDROUsage.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 DocumentDROUsage + protected override object GetIdValue() + { + return MyDocumentDROUsageUnique; // Absolutely Unique ID + } + // CSLATODO: Replace base DocumentDROUsage.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current DocumentDROUsage + //public override string ToString() + //{ + // return base.ToString(); + //} + public override bool IsDirty + { + get + { + if ( base.IsDirty ) + return true; + return IsDirtyList(new List()); + } + } + public bool IsDirtyList(List list) + { + if (base.IsDirty || list.Contains(this)) + return base.IsDirty; + list.Add(this); + return base.IsDirty || (_MyRODb == null ? false : _MyRODb.IsDirtyList(list)); + } + public override bool IsValid + { + get { return IsValidList(new List()); } + } + public bool IsValidList(List list) + { + if(list.Contains(this)) + return (IsNew && !IsDirty) ? true : base.IsValid; + list.Add(this); + return ((IsNew && !IsDirty) ? true : base.IsValid) && (_MyRODb == null ? true : _MyRODb.IsValidList(list)); + } + #endregion + #region ValidationRules + [NonSerialized] + private bool _CheckingBrokenRules = false; + public IVEHasBrokenRules HasBrokenRules + { + get + { + if (_CheckingBrokenRules) return null; + if (BrokenRulesCollection.Count > 0) return this; + try + { + _CheckingBrokenRules = true; + IVEHasBrokenRules hasBrokenRules = null; + if (_MyRODb != null && (hasBrokenRules = _MyRODb.HasBrokenRules) != null) return hasBrokenRules; + 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, "ROID"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("ROID", 16)); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringRequired, "UserID"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); + ValidationRules.AddRule(MyRODbRequired, "MyRODb"); + // CSLATODO: Add other validation rules + } + private static bool MyRODbRequired(DocumentDROUsage target, Csla.Validation.RuleArgs e) + { + if (target._RODbID == 0 && target._MyRODb == null) // Required field missing + { + e.Description = "Required"; + return false; + } + return true; + } + // 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(DROUsageID, ""); + //AuthorizationRules.AllowRead(ROID, ""); + //AuthorizationRules.AllowWrite(ROID, ""); + //AuthorizationRules.AllowRead(Config, ""); + //AuthorizationRules.AllowWrite(Config, ""); + //AuthorizationRules.AllowRead(DTS, ""); + //AuthorizationRules.AllowWrite(DTS, ""); + //AuthorizationRules.AllowRead(UserID, ""); + //AuthorizationRules.AllowWrite(UserID, ""); + //AuthorizationRules.AllowRead(RODbID, ""); + //AuthorizationRules.AllowWrite(RODbID, ""); + } + 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 _DocumentDROUsageUnique = 0; + private static int DocumentDROUsageUnique + { get { return ++_DocumentDROUsageUnique; } } + private int _MyDocumentDROUsageUnique = DocumentDROUsageUnique; + public int MyDocumentDROUsageUnique // Absolutely Unique ID - Editable FK + { get { return _MyDocumentDROUsageUnique; } } + internal static DocumentDROUsage New(string roid, RODb myRODb) + { + return new DocumentDROUsage(roid, myRODb); + } + internal static DocumentDROUsage Get(SafeDataReader dr) + { + return new DocumentDROUsage(dr); + } + public DocumentDROUsage() + { + MarkAsChild(); + _DROUsageID = DROUsage.NextDROUsageID; + _DTS = _DocumentDROUsageExtension.DefaultDTS; + _UserID = _DocumentDROUsageExtension.DefaultUserID; + ValidationRules.CheckRules(); + } + private DocumentDROUsage(string roid, RODb myRODb) + { + MarkAsChild(); + // CSLATODO: Add any initialization & defaults + _DROUsageID = DROUsage.NextDROUsageID; + _DTS = _DocumentDROUsageExtension.DefaultDTS; + _UserID = _DocumentDROUsageExtension.DefaultUserID; + _ROID = roid; + _MyRODb = myRODb; + ValidationRules.CheckRules(); + } + internal DocumentDROUsage(SafeDataReader dr) + { + MarkAsChild(); + Fetch(dr); + } + #endregion + #region Data Access Portal + private void Fetch(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentDROUsage.FetchDR", GetHashCode()); + try + { + _DROUsageID = dr.GetInt32("DROUsageID"); + _ROID = dr.GetString("ROID"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + _RODbID = dr.GetInt32("RODbID"); + _RODb_ROName = dr.GetString("RODb_ROName"); + _RODb_FolderPath = dr.GetString("RODb_FolderPath"); + _RODb_DBConnectionString = dr.GetString("RODb_DBConnectionString"); + _RODb_Config = dr.GetString("RODb_Config"); + _RODb_DTS = dr.GetDateTime("RODb_DTS"); + _RODb_UserID = dr.GetString("RODb_UserID"); + } + catch (Exception ex) // FKItem Fetch + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentDROUsage.FetchDR", ex); + throw new DbCslaException("DocumentDROUsage.Fetch", ex); + } + MarkOld(); + } + internal void Insert(Document myDocument) + { + // if we're not dirty then don't update the database + if (!this.IsDirty) return; + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + _LastChanged = DROUsage.Add(cn, ref _DROUsageID, myDocument, _ROID, _Config, _DTS, _UserID, _MyRODb); + MarkOld(); + } + internal void Update(Document myDocument) + { + // if we're not dirty then don't update the database + if (!this.IsDirty) return; + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + _LastChanged = DROUsage.Update(cn, ref _DROUsageID, myDocument.DocID, _ROID, _Config, _DTS, _UserID, ref _LastChanged, _RODbID); + MarkOld(); + } + internal void DeleteSelf(Document myDocument) + { + // if we're not dirty then don't update the database + if (!this.IsDirty) return; + // if we're new then don't update the database + if (this.IsNew) return; + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + DROUsage.Remove(cn, _DROUsageID); + MarkNew(); + } + #endregion + // Standard Default Code + #region extension + DocumentDROUsageExtension _DocumentDROUsageExtension = new DocumentDROUsageExtension(); + [Serializable()] + partial class DocumentDROUsageExtension : extensionBase + { + } + [Serializable()] + class extensionBase + { + // Default Values + public virtual int DefaultDocID + { + get { return 0; } + } + public virtual DateTime DefaultDTS + { + get { return DateTime.Now; } + } + public virtual string DefaultUserID + { + get { return Environment.UserName.ToUpper(); } + } + // 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 DocumentDROUsageConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is DocumentDROUsage) + { + // Return the ToString value + return ((DocumentDROUsage)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create DocumentDROUsageExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class DocumentDROUsage +// { +// partial class DocumentDROUsageExtension : extensionBase +// { +// // CSLATODO: Override automatic defaults +// public virtual int DefaultDocID +// { +// get { return 0; } +// } +// public virtual DateTime DefaultDTS +// { +// get { return DateTime.Now; } +// } +// public virtual string DefaultUserID +// { +// get { return Environment.UserName.ToUpper(); } +// } +// 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/DocumentDROUsages.cs b/PROMS/VEPROMS.CSLA.Library/Generated/DocumentDROUsages.cs new file mode 100644 index 00000000..c84ff88c --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/DocumentDROUsages.cs @@ -0,0 +1,322 @@ +// ======================================================================== +// 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 +{ + /// + /// DocumentDROUsages Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(DocumentDROUsagesConverter))] + public partial class DocumentDROUsages : BusinessListBase, ICustomTypeDescriptor, IVEHasBrokenRules + { + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Business Methods + private string _ErrorMessage = string.Empty; + public string ErrorMessage + { + get { return _ErrorMessage; } + } + // One To Many + public DocumentDROUsage this[DROUsage myDROUsage] + { + get + { + foreach (DocumentDROUsage dROUsage in this) + if (dROUsage.DROUsageID == myDROUsage.DROUsageID) + return dROUsage; + return null; + } + } + public new System.Collections.Generic.IList Items + { + get { return base.Items; } + } + public DocumentDROUsage GetItem(DROUsage myDROUsage) + { + foreach (DocumentDROUsage dROUsage in this) + if (dROUsage.DROUsageID == myDROUsage.DROUsageID) + return dROUsage; + return null; + } + public DocumentDROUsage Add(string roid, RODb myRODb) // One to Many + { + DocumentDROUsage dROUsage = DocumentDROUsage.New(roid, myRODb); + this.Add(dROUsage); + return dROUsage; + } + public void Remove(DROUsage myDROUsage) + { + foreach (DocumentDROUsage dROUsage in this) + { + if (dROUsage.DROUsageID == myDROUsage.DROUsageID) + { + Remove(dROUsage); + break; + } + } + } + public bool Contains(DROUsage myDROUsage) + { + foreach (DocumentDROUsage dROUsage in this) + if (dROUsage.DROUsageID == myDROUsage.DROUsageID) + return true; + return false; + } + public bool ContainsDeleted(DROUsage myDROUsage) + { + foreach (DocumentDROUsage dROUsage in DeletedList) + if (dROUsage.DROUsageID == myDROUsage.DROUsageID) + return true; + return false; + } + public bool IsDirtyList(List list) + { + // any non-new deletions make us dirty + foreach (DocumentDROUsage item in DeletedList) + if (!item.IsNew) + return true; + // run through all the child objects + // and if any are dirty then then + // collection is dirty + foreach (DocumentDROUsage child in this) + if (child.IsDirtyList(list)) + return true; + return false; + } + public override bool IsValid + { + get { return IsValidList(new List()); } + } + public bool IsValidList(List list) + { + // run through all the child objects + // and if any are invalid then the + // collection is invalid + foreach (DocumentDROUsage child in this) + if (!child.IsValidList(list)) + { + //Console.WriteLine("Valid {0} Child {1} - {2}", child.IsValid, child.GetType().Name,child.ToString()); + return false; + } + return true; + } + #endregion + #region ValidationRules + public IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + foreach (DocumentDROUsage documentDROUsage in this) + if ((hasBrokenRules = documentDROUsage.HasBrokenRules) != null) return hasBrokenRules; + return hasBrokenRules; + } + } + public BrokenRulesCollection BrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = HasBrokenRules; + return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); + } + } + #endregion + #region Factory Methods + internal static DocumentDROUsages New() + { + return new DocumentDROUsages(); + } + internal static DocumentDROUsages Get(SafeDataReader dr) + { + return new DocumentDROUsages(dr); + } + public static DocumentDROUsages GetByDocID(int docID) + { + try + { + return DataPortal.Fetch(new DocIDCriteria(docID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on DocumentDROUsages.GetByDocID", ex); + } + } + private DocumentDROUsages() + { + MarkAsChild(); + } + internal DocumentDROUsages(SafeDataReader dr) + { + MarkAsChild(); + Fetch(dr); + } + #endregion + #region Data Access Portal + // called to load data from the database + private void Fetch(SafeDataReader dr) + { + this.RaiseListChangedEvents = false; + while (dr.Read()) + this.Add(DocumentDROUsage.Get(dr)); + this.RaiseListChangedEvents = true; + } + [Serializable()] + private class DocIDCriteria + { + public DocIDCriteria(int docID) + { + _DocID = docID; + } + private int _DocID; + public int DocID + { + get { return _DocID; } + set { _DocID = value; } + } + } + private void DataPortal_Fetch(DocIDCriteria criteria) + { + this.RaiseListChangedEvents = false; + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentDROUsages.DataPortal_FetchDocID", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getDROUsagesByDocID"; + cm.Parameters.AddWithValue("@DocID", criteria.DocID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + while (dr.Read()) this.Add(new DocumentDROUsage(dr)); + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentDROUsages.DataPortal_FetchDocID", ex); + throw new DbCslaException("DocumentDROUsages.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } + internal void Update(Document document) + { + this.RaiseListChangedEvents = false; + try + { + // update (thus deleting) any deleted child objects + foreach (DocumentDROUsage obj in DeletedList) + obj.DeleteSelf(document);// Deletes related record + // now that they are deleted, remove them from memory too + DeletedList.Clear(); + // add/update any current child objects + foreach (DocumentDROUsage obj in this) + { + if (obj.IsNew) + obj.Insert(document); + else + obj.Update(document); + } + } + finally + { + 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 + DocumentDROUsagesPropertyDescriptor pd = new DocumentDROUsagesPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class DocumentDROUsagesPropertyDescriptor : vlnListPropertyDescriptor + { + private DocumentDROUsage Item { get { return (DocumentDROUsage)_Item; } } + public DocumentDROUsagesPropertyDescriptor(DocumentDROUsages collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class DocumentDROUsagesConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is DocumentDROUsages) + { + // Return department and department role separated by comma. + return ((DocumentDROUsages)value).Items.Count.ToString() + " DROUsages"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/RODbDROUsage.cs b/PROMS/VEPROMS.CSLA.Library/Generated/RODbDROUsage.cs new file mode 100644 index 00000000..38959ca6 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/RODbDROUsage.cs @@ -0,0 +1,632 @@ +// ======================================================================== +// 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 +{ + /// + /// RODbDROUsage Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(RODbDROUsageConverter))] + public partial class RODbDROUsage : BusinessBase, IVEHasBrokenRules + { + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Business Methods + private string _ErrorMessage = string.Empty; + public string ErrorMessage + { + get { return _ErrorMessage; } + } + private int _DROUsageID; + [System.ComponentModel.DataObjectField(true, true)] + public int DROUsageID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DROUsageID", true); + if (_MyDROUsage != null) _DROUsageID = _MyDROUsage.DROUsageID; + return _DROUsageID; + } + } + private DROUsage _MyDROUsage; + [System.ComponentModel.DataObjectField(true, true)] + public DROUsage MyDROUsage + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyDROUsage", true); + if (_MyDROUsage == null && _DROUsageID != 0) _MyDROUsage = DROUsage.Get(_DROUsageID); + return _MyDROUsage; + } + } + private int _DocID; + public int DocID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DocID", true); + if (_MyDocument != null) _DocID = _MyDocument.DocID; + return _DocID; + } + } + private Document _MyDocument; + public Document MyDocument + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyDocument", true); + if (_MyDocument == null && _DocID != 0) _MyDocument = Document.Get(_DocID); + return _MyDocument; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("MyDocument", true); + if (_MyDocument != value) + { + _MyDocument = value; + _DocID = value.DocID;// Update underlying data field + PropertyHasChanged(); + } + } + } + private string _ROID = string.Empty; + public string ROID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROID", true); + return _ROID; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("ROID", true); + if (value == null) value = string.Empty; + if (_ROID != value) + { + _ROID = value; + PropertyHasChanged(); + } + } + } + private string _Config = string.Empty; + public string Config + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Config", true); + return _Config; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("Config", true); + if (value == null) value = string.Empty; + if (_Config != value) + { + _Config = value; + PropertyHasChanged(); + } + } + } + private DateTime _DTS = new DateTime(); + public DateTime DTS + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DTS", true); + return _DTS; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("DTS", true); + if (_DTS != value) + { + _DTS = value; + PropertyHasChanged(); + } + } + } + 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 byte[] _LastChanged = new byte[8];//timestamp + private string _Document_LibTitle = string.Empty; + public string Document_LibTitle + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Document_LibTitle", true); + return _Document_LibTitle; + } + } + private byte[] _Document_DocContent; + /// + /// Actual content of a Word Document (RTF, DOC or XML Format) + /// + public byte[] Document_DocContent + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Document_DocContent", true); + return _Document_DocContent; + } + } + private string _Document_DocAscii = string.Empty; + /// + /// Used for searching + /// + public string Document_DocAscii + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Document_DocAscii", true); + return _Document_DocAscii; + } + } + private string _Document_Config = string.Empty; + public string Document_Config + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Document_Config", true); + return _Document_Config; + } + } + private DateTime _Document_DTS = new DateTime(); + public DateTime Document_DTS + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Document_DTS", true); + return _Document_DTS; + } + } + private string _Document_UserID = string.Empty; + public string Document_UserID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Document_UserID", true); + return _Document_UserID; + } + } + private string _Document_FileExtension = string.Empty; + public string Document_FileExtension + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Document_FileExtension", true); + return _Document_FileExtension; + } + } + private byte[] _Document_DocPdf; + public byte[] Document_DocPdf + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Document_DocPdf", true); + return _Document_DocPdf; + } + } + // CSLATODO: Check RODbDROUsage.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 RODbDROUsage + protected override object GetIdValue() + { + return MyRODbDROUsageUnique; // Absolutely Unique ID + } + // CSLATODO: Replace base RODbDROUsage.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current RODbDROUsage + //public override string ToString() + //{ + // return base.ToString(); + //} + public override bool IsDirty + { + get + { + if ( base.IsDirty ) + return true; + return IsDirtyList(new List()); + } + } + public bool IsDirtyList(List list) + { + if (base.IsDirty || list.Contains(this)) + return base.IsDirty; + list.Add(this); + return base.IsDirty || (_MyDocument == null ? false : _MyDocument.IsDirtyList(list)); + } + public override bool IsValid + { + get { return IsValidList(new List()); } + } + public bool IsValidList(List list) + { + if(list.Contains(this)) + return (IsNew && !IsDirty) ? true : base.IsValid; + list.Add(this); + return ((IsNew && !IsDirty) ? true : base.IsValid) && (_MyDocument == null ? true : _MyDocument.IsValidList(list)); + } + #endregion + #region ValidationRules + [NonSerialized] + private bool _CheckingBrokenRules = false; + public IVEHasBrokenRules HasBrokenRules + { + get + { + if (_CheckingBrokenRules) return null; + if (BrokenRulesCollection.Count > 0) return this; + try + { + _CheckingBrokenRules = true; + IVEHasBrokenRules hasBrokenRules = null; + if (_MyDocument != null && (hasBrokenRules = _MyDocument.HasBrokenRules) != null) return hasBrokenRules; + 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(MyDocumentRequired, "MyDocument"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringRequired, "ROID"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("ROID", 16)); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringRequired, "UserID"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); + // CSLATODO: Add other validation rules + } + private static bool MyDocumentRequired(RODbDROUsage target, Csla.Validation.RuleArgs e) + { + if (target._DocID == 0 && target._MyDocument == null) // Required field missing + { + e.Description = "Required"; + return false; + } + return true; + } + // 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(DROUsageID, ""); + //AuthorizationRules.AllowRead(DocID, ""); + //AuthorizationRules.AllowWrite(DocID, ""); + //AuthorizationRules.AllowRead(ROID, ""); + //AuthorizationRules.AllowWrite(ROID, ""); + //AuthorizationRules.AllowRead(Config, ""); + //AuthorizationRules.AllowWrite(Config, ""); + //AuthorizationRules.AllowRead(DTS, ""); + //AuthorizationRules.AllowWrite(DTS, ""); + //AuthorizationRules.AllowRead(UserID, ""); + //AuthorizationRules.AllowWrite(UserID, ""); + } + 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 _RODbDROUsageUnique = 0; + private static int RODbDROUsageUnique + { get { return ++_RODbDROUsageUnique; } } + private int _MyRODbDROUsageUnique = RODbDROUsageUnique; + public int MyRODbDROUsageUnique // Absolutely Unique ID - Editable FK + { get { return _MyRODbDROUsageUnique; } } + internal static RODbDROUsage New(string roid) + { + return new RODbDROUsage(roid); + } + internal static RODbDROUsage Get(SafeDataReader dr) + { + return new RODbDROUsage(dr); + } + public RODbDROUsage() + { + MarkAsChild(); + _DROUsageID = DROUsage.NextDROUsageID; + _DocID = _RODbDROUsageExtension.DefaultDocID; + _DTS = _RODbDROUsageExtension.DefaultDTS; + _UserID = _RODbDROUsageExtension.DefaultUserID; + ValidationRules.CheckRules(); + } + private RODbDROUsage(string roid) + { + MarkAsChild(); + // CSLATODO: Add any initialization & defaults + _DROUsageID = DROUsage.NextDROUsageID; + _DocID = _RODbDROUsageExtension.DefaultDocID; + _DTS = _RODbDROUsageExtension.DefaultDTS; + _UserID = _RODbDROUsageExtension.DefaultUserID; + _ROID = roid; + ValidationRules.CheckRules(); + } + internal RODbDROUsage(SafeDataReader dr) + { + MarkAsChild(); + Fetch(dr); + } + #endregion + #region Data Access Portal + private void Fetch(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODbDROUsage.FetchDR", GetHashCode()); + try + { + _DROUsageID = dr.GetInt32("DROUsageID"); + _DocID = dr.GetInt32("DocID"); + _ROID = dr.GetString("ROID"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + _Document_LibTitle = dr.GetString("Document_LibTitle"); + _Document_DocContent = (byte[])dr.GetValue("Document_DocContent"); + _Document_DocAscii = dr.GetString("Document_DocAscii"); + _Document_Config = dr.GetString("Document_Config"); + _Document_DTS = dr.GetDateTime("Document_DTS"); + _Document_UserID = dr.GetString("Document_UserID"); + _Document_FileExtension = dr.GetString("Document_FileExtension"); + _Document_DocPdf = (byte[])dr.GetValue("Document_DocPdf"); + } + catch (Exception ex) // FKItem Fetch + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("RODbDROUsage.FetchDR", ex); + throw new DbCslaException("RODbDROUsage.Fetch", ex); + } + MarkOld(); + } + internal void Insert(RODb myRODb) + { + // if we're not dirty then don't update the database + if (!this.IsDirty) return; + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + _LastChanged = DROUsage.Add(cn, ref _DROUsageID, _MyDocument, _ROID, _Config, _DTS, _UserID, myRODb); + MarkOld(); + } + internal void Update(RODb myRODb) + { + // if we're not dirty then don't update the database + if (!this.IsDirty) return; + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + _LastChanged = DROUsage.Update(cn, ref _DROUsageID, _DocID, _ROID, _Config, _DTS, _UserID, ref _LastChanged, myRODb.RODbID); + MarkOld(); + } + internal void DeleteSelf(RODb myRODb) + { + // if we're not dirty then don't update the database + if (!this.IsDirty) return; + // if we're new then don't update the database + if (this.IsNew) return; + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + DROUsage.Remove(cn, _DROUsageID); + MarkNew(); + } + #endregion + // Standard Default Code + #region extension + RODbDROUsageExtension _RODbDROUsageExtension = new RODbDROUsageExtension(); + [Serializable()] + partial class RODbDROUsageExtension : extensionBase + { + } + [Serializable()] + class extensionBase + { + // Default Values + public virtual int DefaultDocID + { + get { return 0; } + } + public virtual DateTime DefaultDTS + { + get { return DateTime.Now; } + } + public virtual string DefaultUserID + { + get { return Environment.UserName.ToUpper(); } + } + // 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 RODbDROUsageConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is RODbDROUsage) + { + // Return the ToString value + return ((RODbDROUsage)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create RODbDROUsageExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class RODbDROUsage +// { +// partial class RODbDROUsageExtension : extensionBase +// { +// // CSLATODO: Override automatic defaults +// public virtual int DefaultDocID +// { +// get { return 0; } +// } +// public virtual DateTime DefaultDTS +// { +// get { return DateTime.Now; } +// } +// public virtual string DefaultUserID +// { +// get { return Environment.UserName.ToUpper(); } +// } +// 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/RODbDROUsages.cs b/PROMS/VEPROMS.CSLA.Library/Generated/RODbDROUsages.cs new file mode 100644 index 00000000..61a06236 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/RODbDROUsages.cs @@ -0,0 +1,322 @@ +// ======================================================================== +// 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 +{ + /// + /// RODbDROUsages Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(RODbDROUsagesConverter))] + public partial class RODbDROUsages : BusinessListBase, ICustomTypeDescriptor, IVEHasBrokenRules + { + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Business Methods + private string _ErrorMessage = string.Empty; + public string ErrorMessage + { + get { return _ErrorMessage; } + } + // One To Many + public RODbDROUsage this[DROUsage myDROUsage] + { + get + { + foreach (RODbDROUsage dROUsage in this) + if (dROUsage.DROUsageID == myDROUsage.DROUsageID) + return dROUsage; + return null; + } + } + public new System.Collections.Generic.IList Items + { + get { return base.Items; } + } + public RODbDROUsage GetItem(DROUsage myDROUsage) + { + foreach (RODbDROUsage dROUsage in this) + if (dROUsage.DROUsageID == myDROUsage.DROUsageID) + return dROUsage; + return null; + } + public RODbDROUsage Add(string roid) // One to Many + { + RODbDROUsage dROUsage = RODbDROUsage.New(roid); + this.Add(dROUsage); + return dROUsage; + } + public void Remove(DROUsage myDROUsage) + { + foreach (RODbDROUsage dROUsage in this) + { + if (dROUsage.DROUsageID == myDROUsage.DROUsageID) + { + Remove(dROUsage); + break; + } + } + } + public bool Contains(DROUsage myDROUsage) + { + foreach (RODbDROUsage dROUsage in this) + if (dROUsage.DROUsageID == myDROUsage.DROUsageID) + return true; + return false; + } + public bool ContainsDeleted(DROUsage myDROUsage) + { + foreach (RODbDROUsage dROUsage in DeletedList) + if (dROUsage.DROUsageID == myDROUsage.DROUsageID) + return true; + return false; + } + public bool IsDirtyList(List list) + { + // any non-new deletions make us dirty + foreach (RODbDROUsage item in DeletedList) + if (!item.IsNew) + return true; + // run through all the child objects + // and if any are dirty then then + // collection is dirty + foreach (RODbDROUsage child in this) + if (child.IsDirtyList(list)) + return true; + return false; + } + public override bool IsValid + { + get { return IsValidList(new List()); } + } + public bool IsValidList(List list) + { + // run through all the child objects + // and if any are invalid then the + // collection is invalid + foreach (RODbDROUsage child in this) + if (!child.IsValidList(list)) + { + //Console.WriteLine("Valid {0} Child {1} - {2}", child.IsValid, child.GetType().Name,child.ToString()); + return false; + } + return true; + } + #endregion + #region ValidationRules + public IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + foreach (RODbDROUsage rODbDROUsage in this) + if ((hasBrokenRules = rODbDROUsage.HasBrokenRules) != null) return hasBrokenRules; + return hasBrokenRules; + } + } + public BrokenRulesCollection BrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = HasBrokenRules; + return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); + } + } + #endregion + #region Factory Methods + internal static RODbDROUsages New() + { + return new RODbDROUsages(); + } + internal static RODbDROUsages Get(SafeDataReader dr) + { + return new RODbDROUsages(dr); + } + public static RODbDROUsages GetByRODbID(int rODbID) + { + try + { + return DataPortal.Fetch(new RODbIDCriteria(rODbID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on RODbDROUsages.GetByRODbID", ex); + } + } + private RODbDROUsages() + { + MarkAsChild(); + } + internal RODbDROUsages(SafeDataReader dr) + { + MarkAsChild(); + Fetch(dr); + } + #endregion + #region Data Access Portal + // called to load data from the database + private void Fetch(SafeDataReader dr) + { + this.RaiseListChangedEvents = false; + while (dr.Read()) + this.Add(RODbDROUsage.Get(dr)); + this.RaiseListChangedEvents = true; + } + [Serializable()] + private class RODbIDCriteria + { + public RODbIDCriteria(int rODbID) + { + _RODbID = rODbID; + } + private int _RODbID; + public int RODbID + { + get { return _RODbID; } + set { _RODbID = value; } + } + } + private void DataPortal_Fetch(RODbIDCriteria criteria) + { + this.RaiseListChangedEvents = false; + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODbDROUsages.DataPortal_FetchRODbID", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getDROUsagesByRODbID"; + cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + while (dr.Read()) this.Add(new RODbDROUsage(dr)); + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("RODbDROUsages.DataPortal_FetchRODbID", ex); + throw new DbCslaException("RODbDROUsages.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } + internal void Update(RODb rODb) + { + this.RaiseListChangedEvents = false; + try + { + // update (thus deleting) any deleted child objects + foreach (RODbDROUsage obj in DeletedList) + obj.DeleteSelf(rODb);// Deletes related record + // now that they are deleted, remove them from memory too + DeletedList.Clear(); + // add/update any current child objects + foreach (RODbDROUsage obj in this) + { + if (obj.IsNew) + obj.Insert(rODb); + else + obj.Update(rODb); + } + } + finally + { + 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 + RODbDROUsagesPropertyDescriptor pd = new RODbDROUsagesPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class RODbDROUsagesPropertyDescriptor : vlnListPropertyDescriptor + { + private RODbDROUsage Item { get { return (RODbDROUsage)_Item; } } + public RODbDROUsagesPropertyDescriptor(RODbDROUsages collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class RODbDROUsagesConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is RODbDROUsages) + { + // Return department and department role separated by comma. + return ((RODbDROUsages)value).Items.Count.ToString() + " DROUsages"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/Volian.Controls.Library/DisplayRO.cs b/PROMS/Volian.Controls.Library/DisplayRO.cs index fac983dd..7c155f71 100644 --- a/PROMS/Volian.Controls.Library/DisplayRO.cs +++ b/PROMS/Volian.Controls.Library/DisplayRO.cs @@ -401,7 +401,9 @@ namespace Volian.Controls.Library { path.Insert(0, myid); myid = rochld.ParentID; - rochld = MyROFST.ROFSTLookup.GetRoChildFromID(myid); + String pROID = string.Format("{0}{1:X08}",db,myid); + rochld = MyROFST.ROFSTLookup.GetRoChild(pROID); + //rochld = MyROFST.ROFSTLookup.GetRoChildFromID(myid); Did not include db if (rochld.ID == -1) myid = -1; } TreeNode tnExpand = null;