diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/Association.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Association.cs
new file mode 100644
index 00000000..b8a09795
--- /dev/null
+++ b/PROMS/VEPROMS.CSLA.Library/Generated/Association.cs
@@ -0,0 +1,1171 @@
+// ========================================================================
+// 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
+{
+ ///
+ /// Association Generated by MyGeneration using the CSLA Object Mapping template
+ ///
+ [Serializable()]
+ [TypeConverter(typeof(AssociationConverter))]
+ public partial class Association : BusinessBase, IDisposable, IVEHasBrokenRules
+ {
+ #region Log4Net
+ private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
+ #endregion
+ #region Refresh
+ private List _RefreshAssociations = new List();
+ private void AddToRefreshList(List refreshAssociations)
+ {
+ if (IsDirty)
+ refreshAssociations.Add(this);
+ }
+ private void BuildRefreshList()
+ {
+ _RefreshAssociations = new List();
+ AddToRefreshList(_RefreshAssociations);
+ }
+ private void ProcessRefreshList()
+ {
+ foreach (Association tmp in _RefreshAssociations)
+ {
+ AssociationInfo.Refresh(tmp);
+ if (tmp._MyDocVersion != null) DocVersionInfo.Refresh(tmp._MyDocVersion);
+ if (tmp._MyROFst != null) ROFstInfo.Refresh(tmp._MyROFst);
+ }
+ }
+ #endregion
+ #region Collection
+ private static List _CacheList = new List();
+ protected static void AddToCache(Association association)
+ {
+ if (!_CacheList.Contains(association)) _CacheList.Add(association); // In AddToCache
+ }
+ protected static void RemoveFromCache(Association association)
+ {
+ while (_CacheList.Contains(association)) _CacheList.Remove(association); // In RemoveFromCache
+ }
+ private static Dictionary> _CacheByPrimaryKey = new Dictionary>();
+ private static Dictionary> _CacheByVersionID_ROFstID = new Dictionary>();
+ private static void ConvertListToDictionary()
+ {
+ List remove = new List();
+ foreach (Association tmp in _CacheList)
+ {
+ if (!_CacheByPrimaryKey.ContainsKey(tmp.AssociationID.ToString()))
+ {
+ _CacheByPrimaryKey[tmp.AssociationID.ToString()] = new List(); // Add new list for PrimaryKey
+ _CacheByVersionID_ROFstID[tmp.VersionID.ToString() + "_" + tmp.ROFstID.ToString()] = new List(); // Add new list for VersionID_ROFstID
+ }
+ _CacheByPrimaryKey[tmp.AssociationID.ToString()].Add(tmp); // Add to Primary Key list
+ _CacheByVersionID_ROFstID[tmp.VersionID.ToString() + "_" + tmp.ROFstID.ToString()].Add(tmp); // Unique Index
+ remove.Add(tmp);
+ }
+ foreach (Association tmp in remove)
+ RemoveFromCache(tmp);
+ }
+ protected static Association GetCachedByPrimaryKey(int associationID)
+ {
+ ConvertListToDictionary();
+ string key = associationID.ToString();
+ if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0];
+ return null;
+ }
+ protected static Association GetCachedByVersionID_ROFstID(int versionID, int rOFstID)
+ {
+ ConvertListToDictionary();
+ string key = versionID.ToString() + "_" + rOFstID.ToString();
+ if (_CacheByVersionID_ROFstID.ContainsKey(key)) return _CacheByVersionID_ROFstID[key][0];
+ return null;
+ }
+ #endregion
+ #region Business Methods
+ private string _ErrorMessage = string.Empty;
+ public string ErrorMessage
+ {
+ get { return _ErrorMessage; }
+ }
+ private static int _nextAssociationID = -1;
+ public static int NextAssociationID
+ {
+ get { return _nextAssociationID--; }
+ }
+ private int _AssociationID;
+ [System.ComponentModel.DataObjectField(true, true)]
+ public int AssociationID
+ {
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ get
+ {
+ CanReadProperty("AssociationID", true);
+ return _AssociationID;
+ }
+ }
+ private int _VersionID;
+ public int VersionID
+ {
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ get
+ {
+ CanReadProperty("VersionID", true);
+ if (_MyDocVersion != null) _VersionID = _MyDocVersion.VersionID;
+ return _VersionID;
+ }
+ }
+ private DocVersion _MyDocVersion;
+ public DocVersion MyDocVersion
+ {
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ get
+ {
+ CanReadProperty("MyDocVersion", true);
+ if (_MyDocVersion == null && _VersionID != 0) _MyDocVersion = DocVersion.Get(_VersionID);
+ return _MyDocVersion;
+ }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ set
+ {
+ CanWriteProperty("MyDocVersion", true);
+ if (_MyDocVersion != value)
+ {
+ _MyDocVersion = value;
+ PropertyHasChanged();
+ }
+ }
+ }
+ private int _ROFstID;
+ public int ROFstID
+ {
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ get
+ {
+ CanReadProperty("ROFstID", true);
+ if (_MyROFst != null) _ROFstID = _MyROFst.ROFstID;
+ return _ROFstID;
+ }
+ }
+ private ROFst _MyROFst;
+ public ROFst MyROFst
+ {
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ get
+ {
+ CanReadProperty("MyROFst", true);
+ if (_MyROFst == null && _ROFstID != 0) _MyROFst = ROFst.Get(_ROFstID);
+ return _MyROFst;
+ }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ set
+ {
+ CanWriteProperty("MyROFst", true);
+ if (_MyROFst != value)
+ {
+ _MyROFst = 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
+ public override bool IsDirty
+ {
+ get { return base.IsDirty || (_MyDocVersion == null ? false : _MyDocVersion.IsDirty) || (_MyROFst == null ? false : _MyROFst.IsDirty); }
+ }
+ public override bool IsValid
+ {
+ get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyDocVersion == null ? true : _MyDocVersion.IsValid) && (_MyROFst == null ? true : _MyROFst.IsValid); }
+ }
+ // TODO: Replace base Association.ToString function as necessary
+ ///
+ /// Overrides Base ToString
+ ///
+ /// A string representation of current Association
+ //public override string ToString()
+ //{
+ // return base.ToString();
+ //}
+ // TODO: Check Association.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 Association
+ protected override object GetIdValue()
+ {
+ return _AssociationID;
+ }
+ #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 (_MyDocVersion != null && (hasBrokenRules = _MyDocVersion.HasBrokenRules) != null) return hasBrokenRules;
+ if (_MyROFst != null && (hasBrokenRules = _MyROFst.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(MyDocVersionRequired, "MyDocVersion");
+ ValidationRules.AddRule(MyROFstRequired, "MyROFst");
+ 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.AddDependantProperty("x", "y");
+ _AssociationExtension.AddValidationRules(ValidationRules);
+ // TODO: Add other validation rules
+ }
+ protected override void AddInstanceBusinessRules()
+ {
+ _AssociationExtension.AddInstanceValidationRules(ValidationRules);
+ // TODO: Add other validation rules
+ }
+ private static bool MyDocVersionRequired(Association target, Csla.Validation.RuleArgs e)
+ {
+ if (target._VersionID == 0 && target._MyDocVersion == null) // Required field missing
+ {
+ e.Description = "Required";
+ return false;
+ }
+ return true;
+ }
+ private static bool MyROFstRequired(Association target, Csla.Validation.RuleArgs e)
+ {
+ if (target._ROFstID == 0 && target._MyROFst == 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()
+ {
+ //TODO: Who can read/write which fields
+ //AuthorizationRules.AllowRead(AssociationID, "");
+ //AuthorizationRules.AllowRead(VersionID, "");
+ //AuthorizationRules.AllowRead(ROFstID, "");
+ //AuthorizationRules.AllowRead(Config, "");
+ //AuthorizationRules.AllowRead(DTS, "");
+ //AuthorizationRules.AllowRead(UserID, "");
+ //AuthorizationRules.AllowWrite(VersionID, "");
+ //AuthorizationRules.AllowWrite(ROFstID, "");
+ //AuthorizationRules.AllowWrite(Config, "");
+ //AuthorizationRules.AllowWrite(DTS, "");
+ //AuthorizationRules.AllowWrite(UserID, "");
+ _AssociationExtension.AddAuthorizationRules(AuthorizationRules);
+ }
+ protected override void AddInstanceAuthorizationRules()
+ {
+ //TODO: Who can read/write which fields
+ _AssociationExtension.AddInstanceAuthorizationRules(AuthorizationRules);
+ }
+ public static bool CanAddObject()
+ {
+ // TODO: Can Add Authorization
+ //return Csla.ApplicationContext.User.IsInRole("ProjectManager");
+ return true;
+ }
+ public static bool CanGetObject()
+ {
+ // TODO: CanGet Authorization
+ return true;
+ }
+ public static bool CanDeleteObject()
+ {
+ // TODO: 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()
+ {
+ // TODO: CanEdit Authorization
+ //return Csla.ApplicationContext.User.IsInRole("ProjectManager");
+ return true;
+ }
+ #endregion
+ #region Factory Methods
+ public int CurrentEditLevel
+ { get { return EditLevel; } }
+ private static int _AssociationUnique = 0;
+ protected static int AssociationUnique
+ { get { return ++_AssociationUnique; } }
+ private int _MyAssociationUnique = AssociationUnique;
+ public int MyAssociationUnique
+ { get { return _MyAssociationUnique; } }
+ protected Association()
+ {/* require use of factory methods */
+ AddToCache(this);
+ }
+ public void Dispose()
+ {
+ RemoveFromDictionaries();
+ }
+ private void RemoveFromDictionaries()
+ {
+ RemoveFromCache(this);
+ if (_CacheByPrimaryKey.ContainsKey(AssociationID.ToString()))
+ {
+ List listAssociation = _CacheByPrimaryKey[AssociationID.ToString()]; // Get the list of items
+ while (listAssociation.Contains(this)) listAssociation.Remove(this); // Remove the item from the list
+ if (listAssociation.Count == 0) //If there are no items left in the list
+ _CacheByPrimaryKey.Remove(AssociationID.ToString()); // remove the list
+ }
+ string myKey;
+ myKey = null;
+ foreach (string key in _CacheByVersionID_ROFstID.Keys)
+ if (_CacheByVersionID_ROFstID[key].Contains(this))
+ myKey = key;
+ if (myKey != null)
+ {
+ List listAssociation = _CacheByVersionID_ROFstID[myKey]; // Get the list of items
+ listAssociation.Remove(this); // Remove the item from the list
+ if (listAssociation.Count == 0) //If there are no items left in the list
+ _CacheByVersionID_ROFstID.Remove(myKey); // remove the list
+ }
+ }
+ public static Association New()
+ {
+ if (!CanAddObject())
+ throw new System.Security.SecurityException("User not authorized to add a Association");
+ try
+ {
+ return DataPortal.Create();
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error on Association.New", ex);
+ }
+ }
+ public static Association New(DocVersion myDocVersion, ROFst myROFst)
+ {
+ Association tmp = Association.New();
+ tmp.MyDocVersion = myDocVersion;
+ tmp.MyROFst = myROFst;
+ return tmp;
+ }
+ public static Association New(DocVersion myDocVersion, ROFst myROFst, string config, DateTime dts, string userID)
+ {
+ Association tmp = Association.New();
+ tmp.MyDocVersion = myDocVersion;
+ tmp.MyROFst = myROFst;
+ tmp.Config = config;
+ tmp.DTS = dts;
+ tmp.UserID = userID;
+ return tmp;
+ }
+ public static Association MakeAssociation(DocVersion myDocVersion, ROFst myROFst, string config, DateTime dts, string userID)
+ {
+ Association tmp = Association.New(myDocVersion, myROFst, config, dts, userID);
+ if (tmp.IsSavable)
+ {
+ Association 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 Association New(DocVersion myDocVersion, ROFst myROFst, string config)
+ {
+ Association tmp = Association.New();
+ tmp.MyDocVersion = myDocVersion;
+ tmp.MyROFst = myROFst;
+ tmp.Config = config;
+ return tmp;
+ }
+ public static Association MakeAssociation(DocVersion myDocVersion, ROFst myROFst, string config)
+ {
+ Association tmp = Association.New(myDocVersion, myROFst, config);
+ if (tmp.IsSavable)
+ {
+ Association 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 Association Get(int associationID)
+ {
+ if (!CanGetObject())
+ throw new System.Security.SecurityException("User not authorized to view a Association");
+ try
+ {
+ Association tmp = GetCachedByPrimaryKey(associationID);
+ if (tmp == null)
+ {
+ tmp = DataPortal.Fetch(new PKCriteria(associationID));
+ AddToCache(tmp);
+ }
+ if (tmp.ErrorMessage == "No Record Found")
+ {
+ tmp.Dispose(); // Clean-up Association
+ tmp = null;
+ }
+ return tmp;
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error on Association.Get", ex);
+ }
+ }
+ public static Association GetByVersionID_ROFstID(int versionID, int rOFstID)
+ {
+ if (!CanGetObject())
+ throw new System.Security.SecurityException("User not authorized to view a Association");
+ try
+ {
+ Association tmp = GetCachedByVersionID_ROFstID(versionID, rOFstID);
+ if (tmp == null)
+ {
+ tmp = DataPortal.Fetch(new VersionID_ROFstIDCriteria(versionID, rOFstID));
+ AddToCache(tmp);
+ }
+ if (tmp.ErrorMessage == "No Record Found")
+ {
+ tmp.Dispose(); // Clean-up Association
+ tmp = null;
+ }
+ return tmp;
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error on Association.GetByVersionID_ROFstID", ex);
+ }
+ }
+ public static Association Get(SafeDataReader dr)
+ {
+ if (dr.Read()) return new Association(dr);
+ return null;
+ }
+ internal Association(SafeDataReader dr)
+ {
+ ReadData(dr);
+ }
+ public static void Delete(int associationID)
+ {
+ if (!CanDeleteObject())
+ throw new System.Security.SecurityException("User not authorized to remove a Association");
+ try
+ {
+ DataPortal.Delete(new PKCriteria(associationID));
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error on Association.Delete", ex);
+ }
+ }
+ public override Association Save()
+ {
+ if (IsDeleted && !CanDeleteObject())
+ throw new System.Security.SecurityException("User not authorized to remove a Association");
+ else if (IsNew && !CanAddObject())
+ throw new System.Security.SecurityException("User not authorized to add a Association");
+ else if (!CanEditObject())
+ throw new System.Security.SecurityException("User not authorized to update a Association");
+ try
+ {
+ BuildRefreshList();
+ Association association = base.Save();
+ RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache
+ AddToCache(association);//Refresh the item in AllList
+ ProcessRefreshList();
+ return association;
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error on CSLA Save", ex);
+ }
+ }
+ #endregion
+ #region Data Access Portal
+ [Serializable()]
+ protected class PKCriteria
+ {
+ private int _AssociationID;
+ public int AssociationID
+ { get { return _AssociationID; } }
+ public PKCriteria(int associationID)
+ {
+ _AssociationID = associationID;
+ }
+ }
+ [Serializable()]
+ private class VersionID_ROFstIDCriteria
+ {
+ private int _VersionID;
+ public int VersionID
+ { get { return _VersionID; } }
+ private int _ROFstID;
+ public int ROFstID
+ { get { return _ROFstID; } }
+ public VersionID_ROFstIDCriteria(int versionID, int rOFstID)
+ {
+ _VersionID = versionID;
+ _ROFstID = rOFstID;
+ }
+ }
+ // TODO: If Create needs to access DB - It should not be marked RunLocal
+ [RunLocal()]
+ private new void DataPortal_Create()
+ {
+ _AssociationID = NextAssociationID;
+ // Database Defaults
+ _DTS = _AssociationExtension.DefaultDTS;
+ _UserID = _AssociationExtension.DefaultUserID;
+ // TODO: Add any defaults that are necessary
+ ValidationRules.CheckRules();
+ }
+ private void ReadData(SafeDataReader dr)
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Association.ReadData", GetHashCode());
+ try
+ {
+ _AssociationID = dr.GetInt32("AssociationID");
+ _VersionID = dr.GetInt32("VersionID");
+ _ROFstID = dr.GetInt32("ROFstID");
+ _Config = dr.GetString("Config");
+ _DTS = dr.GetDateTime("DTS");
+ _UserID = dr.GetString("UserID");
+ dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8);
+ MarkOld();
+ }
+ catch (Exception ex)
+ {
+ if (_MyLog.IsErrorEnabled) _MyLog.Error("Association.ReadData", ex);
+ _ErrorMessage = ex.Message;
+ throw new DbCslaException("Association.ReadData", ex);
+ }
+ }
+ private void DataPortal_Fetch(PKCriteria criteria)
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Association.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 = "getAssociation";
+ cm.Parameters.AddWithValue("@AssociationID", criteria.AssociationID);
+ 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("Association.DataPortal_Fetch", ex);
+ _ErrorMessage = ex.Message;
+ throw new DbCslaException("Association.DataPortal_Fetch", ex);
+ }
+ }
+ private void DataPortal_Fetch(VersionID_ROFstIDCriteria criteria)
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Association.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 = "getAssociationByVersionID_ROFstID";
+ cm.Parameters.AddWithValue("@VersionID", criteria.VersionID);
+ cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID);
+ 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("Association.DataPortal_Fetch", ex);
+ _ErrorMessage = ex.Message;
+ throw new DbCslaException("Association.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("Association.DataPortal_Insert", ex);
+ _ErrorMessage = ex.Message;
+ throw new DbCslaException("Association.DataPortal_Insert", ex);
+ }
+ finally
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Association.DataPortal_Insert", GetHashCode());
+ }
+ }
+ [Transactional(TransactionalTypes.TransactionScope)]
+ internal void SQLInsert()
+ {
+ if (!this.IsDirty) return;
+ try
+ {
+ if (_MyDocVersion != null) _MyDocVersion.Update();
+ if (_MyROFst != null) _MyROFst.Update();
+ SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"];
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "addAssociation";
+ // Input All Fields - Except Calculated Columns
+ cm.Parameters.AddWithValue("@VersionID", VersionID);
+ cm.Parameters.AddWithValue("@ROFstID", ROFstID);
+ cm.Parameters.AddWithValue("@Config", _Config);
+ if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS);
+ cm.Parameters.AddWithValue("@UserID", _UserID);
+ // Output Calculated Columns
+ SqlParameter param_AssociationID = new SqlParameter("@newAssociationID", SqlDbType.Int);
+ param_AssociationID.Direction = ParameterDirection.Output;
+ cm.Parameters.Add(param_AssociationID);
+ SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp);
+ param_LastChanged.Direction = ParameterDirection.Output;
+ cm.Parameters.Add(param_LastChanged);
+ // TODO: Define any additional output parameters
+ cm.ExecuteNonQuery();
+ // Save all values being returned from the Procedure
+ _AssociationID = (int)cm.Parameters["@newAssociationID"].Value;
+ _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value;
+ }
+ MarkOld();
+ // update child objects
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Association.SQLInsert", GetHashCode());
+ }
+ catch (Exception ex)
+ {
+ if (_MyLog.IsErrorEnabled) _MyLog.Error("Association.SQLInsert", ex);
+ _ErrorMessage = ex.Message;
+ throw new DbCslaException("Association.SQLInsert", ex);
+ }
+ }
+ [Transactional(TransactionalTypes.TransactionScope)]
+ public static byte[] Add(SqlConnection cn, ref int associationID, DocVersion myDocVersion, ROFst myROFst, string config, DateTime dts, string userID)
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Association.Add", 0);
+ try
+ {
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "addAssociation";
+ // Input All Fields - Except Calculated Columns
+ cm.Parameters.AddWithValue("@VersionID", myDocVersion.VersionID);
+ cm.Parameters.AddWithValue("@ROFstID", myROFst.ROFstID);
+ cm.Parameters.AddWithValue("@Config", config);
+ if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts);
+ cm.Parameters.AddWithValue("@UserID", userID);
+ // Output Calculated Columns
+ SqlParameter param_AssociationID = new SqlParameter("@newAssociationID", SqlDbType.Int);
+ param_AssociationID.Direction = ParameterDirection.Output;
+ cm.Parameters.Add(param_AssociationID);
+ SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp);
+ param_LastChanged.Direction = ParameterDirection.Output;
+ cm.Parameters.Add(param_LastChanged);
+ // TODO: Define any additional output parameters
+ cm.ExecuteNonQuery();
+ // Save all values being returned from the Procedure
+ associationID = (int)cm.Parameters["@newAssociationID"].Value;
+ return (byte[])cm.Parameters["@newLastChanged"].Value;
+ }
+ }
+ catch (Exception ex)
+ {
+ if (_MyLog.IsErrorEnabled) _MyLog.Error("Association.Add", ex);
+ throw new DbCslaException("Association.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}] Association.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("Association.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}] Association.SQLUpdate", GetHashCode());
+ try
+ {
+ if (_MyDocVersion != null) _MyDocVersion.Update();
+ if (_MyROFst != null) _MyROFst.Update();
+ SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"];
+ if (base.IsDirty)
+ {
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "updateAssociation";
+ // All Fields including Calculated Fields
+ cm.Parameters.AddWithValue("@AssociationID", _AssociationID);
+ cm.Parameters.AddWithValue("@VersionID", VersionID);
+ cm.Parameters.AddWithValue("@ROFstID", ROFstID);
+ 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);
+ // Output Calculated Columns
+ SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp);
+ param_LastChanged.Direction = ParameterDirection.Output;
+ cm.Parameters.Add(param_LastChanged);
+ // TODO: 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("Association.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 = Association.Add(cn, ref _AssociationID, _MyDocVersion, _MyROFst, _Config, _DTS, _UserID);
+ else
+ _LastChanged = Association.Update(cn, ref _AssociationID, _MyDocVersion, _MyROFst, _Config, _DTS, _UserID, ref _LastChanged);
+ MarkOld();
+ }
+ }
+ [Transactional(TransactionalTypes.TransactionScope)]
+ public static byte[] Update(SqlConnection cn, ref int associationID, DocVersion myDocVersion, ROFst myROFst, string config, DateTime dts, string userID, ref byte[] lastChanged)
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Association.Update", 0);
+ try
+ {
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "updateAssociation";
+ // Input All Fields - Except Calculated Columns
+ cm.Parameters.AddWithValue("@AssociationID", associationID);
+ cm.Parameters.AddWithValue("@VersionID", myDocVersion.VersionID);
+ cm.Parameters.AddWithValue("@ROFstID", myROFst.ROFstID);
+ 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);
+ // Output Calculated Columns
+ SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp);
+ param_LastChanged.Direction = ParameterDirection.Output;
+ cm.Parameters.Add(param_LastChanged);
+ // TODO: 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("Association.Update", ex);
+ throw new DbCslaException("Association.Update", ex);
+ }
+ }
+ [Transactional(TransactionalTypes.TransactionScope)]
+ protected override void DataPortal_DeleteSelf()
+ {
+ DataPortal_Delete(new PKCriteria(_AssociationID));
+ }
+ [Transactional(TransactionalTypes.TransactionScope)]
+ private void DataPortal_Delete(PKCriteria criteria)
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Association.DataPortal_Delete", GetHashCode());
+ try
+ {
+ using (SqlConnection cn = Database.VEPROMS_SqlConnection)
+ {
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "deleteAssociation";
+ cm.Parameters.AddWithValue("@AssociationID", criteria.AssociationID);
+ cm.ExecuteNonQuery();
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ if (_MyLog.IsErrorEnabled) _MyLog.Error("Association.DataPortal_Delete", ex);
+ _ErrorMessage = ex.Message;
+ throw new DbCslaException("Association.DataPortal_Delete", ex);
+ }
+ }
+ [Transactional(TransactionalTypes.TransactionScope)]
+ public static void Remove(SqlConnection cn, int associationID)
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Association.Remove", 0);
+ try
+ {
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "deleteAssociation";
+ // Input PK Fields
+ cm.Parameters.AddWithValue("@AssociationID", associationID);
+ // TODO: Define any additional output parameters
+ cm.ExecuteNonQuery();
+ }
+ }
+ catch (Exception ex)
+ {
+ if (_MyLog.IsErrorEnabled) _MyLog.Error("Association.Remove", ex);
+ throw new DbCslaException("Association.Remove", ex);
+ }
+ }
+ #endregion
+ #region Exists
+ public static bool Exists(int associationID)
+ {
+ ExistsCommand result;
+ try
+ {
+ result = DataPortal.Execute(new ExistsCommand(associationID));
+ return result.Exists;
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error on Association.Exists", ex);
+ }
+ }
+ [Serializable()]
+ private class ExistsCommand : CommandBase
+ {
+ private int _AssociationID;
+ private bool _exists;
+ public bool Exists
+ {
+ get { return _exists; }
+ }
+ public ExistsCommand(int associationID)
+ {
+ _AssociationID = associationID;
+ }
+ protected override void DataPortal_Execute()
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Association.DataPortal_Execute", GetHashCode());
+ try
+ {
+ using (SqlConnection cn = Database.VEPROMS_SqlConnection)
+ {
+ cn.Open();
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "existsAssociation";
+ cm.Parameters.AddWithValue("@AssociationID", _AssociationID);
+ int count = (int)cm.ExecuteScalar();
+ _exists = (count > 0);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ if (_MyLog.IsErrorEnabled) _MyLog.Error("Association.DataPortal_Execute", ex);
+ throw new DbCslaException("Association.DataPortal_Execute", ex);
+ }
+ }
+ }
+ #endregion
+ // Standard Default Code
+ #region extension
+ AssociationExtension _AssociationExtension = new AssociationExtension();
+ [Serializable()]
+ partial class AssociationExtension : extensionBase
+ {
+ }
+ [Serializable()]
+ class extensionBase
+ {
+ // Default Values
+ 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 AssociationConverter : ExpandableObjectConverter
+ {
+ public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType)
+ {
+ if (destType == typeof(string) && value is Association)
+ {
+ // Return the ToString value
+ return ((Association)value).ToString();
+ }
+ return base.ConvertTo(context, culture, value, destType);
+ }
+ }
+ #endregion
+} // Namespace
+
+
+//// The following is a sample Extension File. You can use it to create AssociationExt.cs
+//using System;
+//using System.Collections.Generic;
+//using System.Text;
+//using Csla;
+
+//namespace VEPROMS.CSLA.Library
+//{
+// public partial class Association
+// {
+// partial class AssociationExtension : extensionBase
+// {
+// // TODO: Override automatic defaults
+// 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/AssociationInfo.cs b/PROMS/VEPROMS.CSLA.Library/Generated/AssociationInfo.cs
new file mode 100644
index 00000000..48df46f4
--- /dev/null
+++ b/PROMS/VEPROMS.CSLA.Library/Generated/AssociationInfo.cs
@@ -0,0 +1,459 @@
+// ========================================================================
+// 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 AssociationInfoEvent(object sender);
+ ///
+ /// AssociationInfo Generated by MyGeneration using the CSLA Object Mapping template
+ ///
+ [Serializable()]
+ [TypeConverter(typeof(AssociationInfoConverter))]
+ public partial class AssociationInfo : ReadOnlyBase, IDisposable
+ {
+ public event AssociationInfoEvent 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(AssociationInfo associationInfo)
+ {
+ if (!_CacheList.Contains(associationInfo)) _CacheList.Add(associationInfo); // In AddToCache
+ }
+ protected static void RemoveFromCache(AssociationInfo associationInfo)
+ {
+ while (_CacheList.Contains(associationInfo)) _CacheList.Remove(associationInfo); // In RemoveFromCache
+ }
+ private static Dictionary> _CacheByPrimaryKey = new Dictionary>();
+ private static void ConvertListToDictionary()
+ {
+ List remove = new List();
+ foreach (AssociationInfo tmp in _CacheList)
+ {
+ if (!_CacheByPrimaryKey.ContainsKey(tmp.AssociationID.ToString()))
+ {
+ _CacheByPrimaryKey[tmp.AssociationID.ToString()] = new List(); // Add new list for PrimaryKey
+ }
+ _CacheByPrimaryKey[tmp.AssociationID.ToString()].Add(tmp); // Add to Primary Key list
+ remove.Add(tmp);
+ }
+ foreach (AssociationInfo tmp in remove)
+ RemoveFromCache(tmp);
+ }
+ internal static void AddList(AssociationInfoList lst)
+ {
+ foreach (AssociationInfo item in lst) AddToCache(item);
+ }
+ protected static AssociationInfo GetCachedByPrimaryKey(int associationID)
+ {
+ ConvertListToDictionary();
+ string key = associationID.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 Association _Editable;
+ private IVEHasBrokenRules HasBrokenRules
+ {
+ get
+ {
+ IVEHasBrokenRules hasBrokenRules = null;
+ if (_Editable != null)
+ hasBrokenRules = _Editable.HasBrokenRules;
+ return hasBrokenRules;
+ }
+ }
+ private int _AssociationID;
+ [System.ComponentModel.DataObjectField(true, true)]
+ public int AssociationID
+ {
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ get
+ {
+ CanReadProperty("AssociationID", true);
+ return _AssociationID;
+ }
+ }
+ private int _VersionID;
+ public int VersionID
+ {
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ get
+ {
+ CanReadProperty("VersionID", true);
+ if (_MyDocVersion != null) _VersionID = _MyDocVersion.VersionID;
+ return _VersionID;
+ }
+ }
+ private DocVersionInfo _MyDocVersion;
+ public DocVersionInfo MyDocVersion
+ {
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ get
+ {
+ CanReadProperty("MyDocVersion", true);
+ if (_MyDocVersion == null && _VersionID != 0) _MyDocVersion = DocVersionInfo.Get(_VersionID);
+ return _MyDocVersion;
+ }
+ }
+ private int _ROFstID;
+ public int ROFstID
+ {
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ get
+ {
+ CanReadProperty("ROFstID", true);
+ if (_MyROFst != null) _ROFstID = _MyROFst.ROFstID;
+ return _ROFstID;
+ }
+ }
+ private ROFstInfo _MyROFst;
+ public ROFstInfo MyROFst
+ {
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ get
+ {
+ CanReadProperty("MyROFst", true);
+ if (_MyROFst == null && _ROFstID != 0) _MyROFst = ROFstInfo.Get(_ROFstID);
+ return _MyROFst;
+ }
+ }
+ 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;
+ }
+ }
+ // TODO: Replace base AssociationInfo.ToString function as necessary
+ ///
+ /// Overrides Base ToString
+ ///
+ /// A string representation of current AssociationInfo
+ //public override string ToString()
+ //{
+ // return base.ToString();
+ //}
+ // TODO: Check AssociationInfo.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 AssociationInfo
+ protected override object GetIdValue()
+ {
+ return _AssociationID;
+ }
+ #endregion
+ #region Factory Methods
+ private static int _AssociationInfoUnique = 0;
+ private static int AssociationInfoUnique
+ { get { return ++_AssociationInfoUnique; } }
+ private int _MyAssociationInfoUnique = AssociationInfoUnique;
+ public int MyAssociationInfoUnique
+ { get { return _MyAssociationInfoUnique; } }
+ protected AssociationInfo()
+ {/* require use of factory methods */
+ AddToCache(this);
+ }
+ public void Dispose()
+ {
+ RemoveFromCache(this);
+ if (!_CacheByPrimaryKey.ContainsKey(AssociationID.ToString())) return;
+ List listAssociationInfo = _CacheByPrimaryKey[AssociationID.ToString()]; // Get the list of items
+ while (listAssociationInfo.Contains(this)) listAssociationInfo.Remove(this); // Remove the item from the list
+ if (listAssociationInfo.Count == 0) // If there are no items left in the list
+ _CacheByPrimaryKey.Remove(AssociationID.ToString()); // remove the list
+ }
+ public virtual Association Get()
+ {
+ return _Editable = Association.Get(_AssociationID);
+ }
+ public static void Refresh(Association tmp)
+ {
+ string key = tmp.AssociationID.ToString();
+ ConvertListToDictionary();
+ if (_CacheByPrimaryKey.ContainsKey(key))
+ foreach (AssociationInfo tmpInfo in _CacheByPrimaryKey[key])
+ tmpInfo.RefreshFields(tmp);
+ }
+ protected virtual void RefreshFields(Association tmp)
+ {
+ if (_VersionID != tmp.VersionID)
+ {
+ if (MyDocVersion != null) MyDocVersion.RefreshDocVersionAssociations(); // Update List for old value
+ _VersionID = tmp.VersionID; // Update the value
+ }
+ _MyDocVersion = null; // Reset list so that the next line gets a new list
+ if (MyDocVersion != null) MyDocVersion.RefreshDocVersionAssociations(); // Update List for new value
+ if (_ROFstID != tmp.ROFstID)
+ {
+ if (MyROFst != null) MyROFst.RefreshROFstAssociations(); // Update List for old value
+ _ROFstID = tmp.ROFstID; // Update the value
+ }
+ _MyROFst = null; // Reset list so that the next line gets a new list
+ if (MyROFst != null) MyROFst.RefreshROFstAssociations(); // Update List for new value
+ _Config = tmp.Config;
+ _DTS = tmp.DTS;
+ _UserID = tmp.UserID;
+ _AssociationInfoExtension.Refresh(this);
+ if(_MyDocVersion != null)
+ {
+ _MyDocVersion.Dispose();// Dispose related value
+ _MyDocVersion = null;// Reset related value
+ }
+ if(_MyROFst != null)
+ {
+ _MyROFst.Dispose();// Dispose related value
+ _MyROFst = null;// Reset related value
+ }
+ OnChange();// raise an event
+ }
+ public static void Refresh(DocVersionAssociation tmp)
+ {
+ string key = tmp.AssociationID.ToString();
+ ConvertListToDictionary();
+ if (_CacheByPrimaryKey.ContainsKey(key))
+ foreach (AssociationInfo tmpInfo in _CacheByPrimaryKey[key])
+ tmpInfo.RefreshFields(tmp);
+ }
+ protected virtual void RefreshFields(DocVersionAssociation tmp)
+ {
+ if (_ROFstID != tmp.ROFstID)
+ {
+ if (MyROFst != null) MyROFst.RefreshROFstAssociations(); // Update List for old value
+ _ROFstID = tmp.ROFstID; // Update the value
+ }
+ _MyROFst = null; // Reset list so that the next line gets a new list
+ if (MyROFst != null) MyROFst.RefreshROFstAssociations(); // Update List for new value
+ _Config = tmp.Config;
+ _DTS = tmp.DTS;
+ _UserID = tmp.UserID;
+ _AssociationInfoExtension.Refresh(this);
+ if(_MyDocVersion != null)
+ {
+ _MyDocVersion.Dispose();// Dispose related value
+ _MyDocVersion = null;// Reset related value
+ }
+ if(_MyROFst != null)
+ {
+ _MyROFst.Dispose();// Dispose related value
+ _MyROFst = null;// Reset related value
+ }
+ OnChange();// raise an event
+ }
+ public static void Refresh(ROFstAssociation tmp)
+ {
+ string key = tmp.AssociationID.ToString();
+ ConvertListToDictionary();
+ if (_CacheByPrimaryKey.ContainsKey(key))
+ foreach (AssociationInfo tmpInfo in _CacheByPrimaryKey[key])
+ tmpInfo.RefreshFields(tmp);
+ }
+ protected virtual void RefreshFields(ROFstAssociation tmp)
+ {
+ if (_VersionID != tmp.VersionID)
+ {
+ if (MyDocVersion != null) MyDocVersion.RefreshDocVersionAssociations(); // Update List for old value
+ _VersionID = tmp.VersionID; // Update the value
+ }
+ _MyDocVersion = null; // Reset list so that the next line gets a new list
+ if (MyDocVersion != null) MyDocVersion.RefreshDocVersionAssociations(); // Update List for new value
+ _Config = tmp.Config;
+ _DTS = tmp.DTS;
+ _UserID = tmp.UserID;
+ _AssociationInfoExtension.Refresh(this);
+ if(_MyDocVersion != null)
+ {
+ _MyDocVersion.Dispose();// Dispose related value
+ _MyDocVersion = null;// Reset related value
+ }
+ if(_MyROFst != null)
+ {
+ _MyROFst.Dispose();// Dispose related value
+ _MyROFst = null;// Reset related value
+ }
+ OnChange();// raise an event
+ }
+ public static AssociationInfo Get(int associationID)
+ {
+ //if (!CanGetObject())
+ // throw new System.Security.SecurityException("User not authorized to view a Association");
+ try
+ {
+ AssociationInfo tmp = GetCachedByPrimaryKey(associationID);
+ if (tmp == null)
+ {
+ tmp = DataPortal.Fetch(new PKCriteria(associationID));
+ AddToCache(tmp);
+ }
+ if (tmp.ErrorMessage == "No Record Found")
+ {
+ tmp.Dispose(); // Clean-up AssociationInfo
+ tmp = null;
+ }
+ return tmp;
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error on AssociationInfo.Get", ex);
+ }
+ }
+ #endregion
+ #region Data Access Portal
+ internal AssociationInfo(SafeDataReader dr)
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssociationInfo.Constructor", GetHashCode());
+ try
+ {
+ ReadData(dr);
+ }
+ catch (Exception ex)
+ {
+ if (_MyLog.IsErrorEnabled) _MyLog.Error("AssociationInfo.Constructor", ex);
+ throw new DbCslaException("AssociationInfo.Constructor", ex);
+ }
+ }
+ [Serializable()]
+ protected class PKCriteria
+ {
+ private int _AssociationID;
+ public int AssociationID
+ { get { return _AssociationID; } }
+ public PKCriteria(int associationID)
+ {
+ _AssociationID = associationID;
+ }
+ }
+ private void ReadData(SafeDataReader dr)
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssociationInfo.ReadData", GetHashCode());
+ try
+ {
+ _AssociationID = dr.GetInt32("AssociationID");
+ _VersionID = dr.GetInt32("VersionID");
+ _ROFstID = dr.GetInt32("ROFstID");
+ _Config = dr.GetString("Config");
+ _DTS = dr.GetDateTime("DTS");
+ _UserID = dr.GetString("UserID");
+ }
+ catch (Exception ex)
+ {
+ if (_MyLog.IsErrorEnabled) _MyLog.Error("AssociationInfo.ReadData", ex);
+ _ErrorMessage = ex.Message;
+ throw new DbCslaException("AssociationInfo.ReadData", ex);
+ }
+ }
+ private void DataPortal_Fetch(PKCriteria criteria)
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssociationInfo.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 = "getAssociation";
+ cm.Parameters.AddWithValue("@AssociationID", criteria.AssociationID);
+ 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("AssociationInfo.DataPortal_Fetch", ex);
+ _ErrorMessage = ex.Message;
+ throw new DbCslaException("AssociationInfo.DataPortal_Fetch", ex);
+ }
+ }
+ #endregion
+ // Standard Refresh
+ #region extension
+ AssociationInfoExtension _AssociationInfoExtension = new AssociationInfoExtension();
+ [Serializable()]
+ partial class AssociationInfoExtension : extensionBase { }
+ [Serializable()]
+ class extensionBase
+ {
+ // Default Refresh
+ public virtual void Refresh(AssociationInfo tmp) { }
+ }
+ #endregion
+ } // Class
+ #region Converter
+ internal class AssociationInfoConverter : ExpandableObjectConverter
+ {
+ public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType)
+ {
+ if (destType == typeof(string) && value is AssociationInfo)
+ {
+ // Return the ToString value
+ return ((AssociationInfo)value).ToString();
+ }
+ return base.ConvertTo(context, culture, value, destType);
+ }
+ }
+ #endregion
+} // Namespace
diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/AssociationInfoList.cs b/PROMS/VEPROMS.CSLA.Library/Generated/AssociationInfoList.cs
new file mode 100644
index 00000000..261e6b40
--- /dev/null
+++ b/PROMS/VEPROMS.CSLA.Library/Generated/AssociationInfoList.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
+{
+ ///
+ /// AssociationInfoList Generated by MyGeneration using the CSLA Object Mapping template
+ ///
+ [Serializable()]
+ [TypeConverter(typeof(AssociationInfoListConverter))]
+ public partial class AssociationInfoList : 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 (AssociationInfo tmp in this)
+ {
+ tmp.Changed += new AssociationInfoEvent(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 (AssociationInfo tmp in this)
+ {
+ tmp.Changed -= new AssociationInfoEvent(tmp_Changed);
+ }
+ }
+ #endregion
+ #region Factory Methods
+ public static AssociationInfoList _AssociationInfoList = null;
+ ///
+ /// Return a list of all AssociationInfo.
+ ///
+ public static AssociationInfoList Get()
+ {
+ try
+ {
+ if (_AssociationInfoList != null)
+ return _AssociationInfoList;
+ AssociationInfoList tmp = DataPortal.Fetch();
+ AssociationInfo.AddList(tmp);
+ tmp.AddEvents();
+ _AssociationInfoList = tmp;
+ return tmp;
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error on AssociationInfoList.Get", ex);
+ }
+ }
+ ///
+ /// Reset the list of all AssociationInfo.
+ ///
+ public static void Reset()
+ {
+ _AssociationInfoList = null;
+ }
+ // TODO: Add alternative gets -
+ //public static AssociationInfoList Get()
+ //{
+ // try
+ // {
+ // return DataPortal.Fetch(new FilteredCriteria());
+ // }
+ // catch (Exception ex)
+ // {
+ // throw new DbCslaException("Error on AssociationInfoList.Get", ex);
+ // }
+ //}
+ public static AssociationInfoList GetByVersionID(int versionID)
+ {
+ try
+ {
+ AssociationInfoList tmp = DataPortal.Fetch(new VersionIDCriteria(versionID));
+ AssociationInfo.AddList(tmp);
+ tmp.AddEvents();
+ return tmp;
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error on AssociationInfoList.GetByVersionID", ex);
+ }
+ }
+ public static AssociationInfoList GetByROFstID(int rOFstID)
+ {
+ try
+ {
+ AssociationInfoList tmp = DataPortal.Fetch(new ROFstIDCriteria(rOFstID));
+ AssociationInfo.AddList(tmp);
+ tmp.AddEvents();
+ return tmp;
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error on AssociationInfoList.GetByROFstID", ex);
+ }
+ }
+ private AssociationInfoList()
+ { /* require use of factory methods */ }
+ #endregion
+ #region Data Access Portal
+ private void DataPortal_Fetch()
+ {
+ this.RaiseListChangedEvents = false;
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssociationInfoList.DataPortal_Fetch", GetHashCode());
+ try
+ {
+ using (SqlConnection cn = Database.VEPROMS_SqlConnection)
+ {
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "getAssociations";
+ using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
+ {
+ IsReadOnly = false;
+ while (dr.Read()) this.Add(new AssociationInfo(dr));
+ IsReadOnly = true;
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ if (_MyLog.IsErrorEnabled) _MyLog.Error("AssociationInfoList.DataPortal_Fetch", ex);
+ throw new DbCslaException("AssociationInfoList.DataPortal_Fetch", ex);
+ }
+ this.RaiseListChangedEvents = true;
+ }
+ [Serializable()]
+ private class VersionIDCriteria
+ {
+ public VersionIDCriteria(int versionID)
+ {
+ _VersionID = versionID;
+ }
+ private int _VersionID;
+ public int VersionID
+ {
+ get { return _VersionID; }
+ set { _VersionID = value; }
+ }
+ }
+ private void DataPortal_Fetch(VersionIDCriteria criteria)
+ {
+ this.RaiseListChangedEvents = false;
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssociationInfoList.DataPortal_FetchVersionID", GetHashCode());
+ try
+ {
+ using (SqlConnection cn = Database.VEPROMS_SqlConnection)
+ {
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "getAssociationsByVersionID";
+ cm.Parameters.AddWithValue("@VersionID", criteria.VersionID);
+ using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
+ {
+ IsReadOnly = false;
+ while (dr.Read()) this.Add(new AssociationInfo(dr));
+ IsReadOnly = true;
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ if (_MyLog.IsErrorEnabled) _MyLog.Error("AssociationInfoList.DataPortal_FetchVersionID", ex);
+ throw new DbCslaException("AssociationInfoList.DataPortal_Fetch", ex);
+ }
+ this.RaiseListChangedEvents = true;
+ }
+ [Serializable()]
+ private class ROFstIDCriteria
+ {
+ public ROFstIDCriteria(int rOFstID)
+ {
+ _ROFstID = rOFstID;
+ }
+ private int _ROFstID;
+ public int ROFstID
+ {
+ get { return _ROFstID; }
+ set { _ROFstID = value; }
+ }
+ }
+ private void DataPortal_Fetch(ROFstIDCriteria criteria)
+ {
+ this.RaiseListChangedEvents = false;
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssociationInfoList.DataPortal_FetchROFstID", GetHashCode());
+ try
+ {
+ using (SqlConnection cn = Database.VEPROMS_SqlConnection)
+ {
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "getAssociationsByROFstID";
+ cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID);
+ using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
+ {
+ IsReadOnly = false;
+ while (dr.Read()) this.Add(new AssociationInfo(dr));
+ IsReadOnly = true;
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ if (_MyLog.IsErrorEnabled) _MyLog.Error("AssociationInfoList.DataPortal_FetchROFstID", ex);
+ throw new DbCslaException("AssociationInfoList.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
+ AssociationInfoListPropertyDescriptor pd = new AssociationInfoListPropertyDescriptor(this, i);
+ pds.Add(pd);
+ }
+ // return the property descriptor collection
+ return pds;
+ }
+ #endregion
+ } // Class
+ #region Property Descriptor
+ ///
+ /// Summary description for CollectionPropertyDescriptor.
+ ///
+ public partial class AssociationInfoListPropertyDescriptor : vlnListPropertyDescriptor
+ {
+ private AssociationInfo Item { get { return (AssociationInfo)_Item; } }
+ public AssociationInfoListPropertyDescriptor(AssociationInfoList collection, int index) : base(collection, index) { ;}
+ }
+ #endregion
+ #region Converter
+ internal class AssociationInfoListConverter : ExpandableObjectConverter
+ {
+ public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType)
+ {
+ if (destType == typeof(string) && value is AssociationInfoList)
+ {
+ // Return department and department role separated by comma.
+ return ((AssociationInfoList)value).Items.Count.ToString() + " Associations";
+ }
+ return base.ConvertTo(context, culture, value, destType);
+ }
+ }
+ #endregion
+} // Namespace