This commit is contained in:
Jsj
2008-05-16 18:07:47 +00:00
parent 9d0b3cd543
commit cda0291dbd
116 changed files with 4257 additions and 3382 deletions

View File

@@ -41,7 +41,7 @@ namespace VEPROMS.CSLA.Library
{
foreach (UserMembership tmp in _UserMemberships)
{
if(tmp.IsDirty)refreshUserMemberships.Add(tmp);
if (tmp.IsDirty) refreshUserMemberships.Add(tmp);
}
}
}
@@ -65,13 +65,17 @@ namespace VEPROMS.CSLA.Library
#endregion
#region Collection
protected static List<User> _AllList = new List<User>();
private static Dictionary<string, User> _AllByPrimaryKey = new Dictionary<string, User>();
private static Dictionary<string, List<User>> _AllByPrimaryKey = new Dictionary<string, List<User>>();
private static void ConvertListToDictionary()
{
List<User> remove = new List<User>();
foreach (User tmp in _AllList)
{
_AllByPrimaryKey[tmp.UID.ToString()]=tmp; // Primary Key
if (!_AllByPrimaryKey.ContainsKey(tmp.UID.ToString()))
{
_AllByPrimaryKey[tmp.UID.ToString()] = new List<User>(); // Add new list for PrimaryKey
}
_AllByPrimaryKey[tmp.UID.ToString()].Add(tmp); // Add to Primary Key list
remove.Add(tmp);
}
foreach (User tmp in remove)
@@ -81,7 +85,7 @@ namespace VEPROMS.CSLA.Library
{
ConvertListToDictionary();
string key = uid.ToString();
if (_AllByPrimaryKey.ContainsKey(key)) return _AllByPrimaryKey[key];
if (_AllByPrimaryKey.ContainsKey(key)) return _AllByPrimaryKey[key][0];
return null;
}
#endregion
@@ -103,7 +107,7 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("UID",true);
CanReadProperty("UID", true);
return _UID;
}
}
@@ -113,13 +117,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("UserID",true);
CanReadProperty("UserID", true);
return _UserID;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("UserID",true);
CanWriteProperty("UserID", true);
if (value == null) value = string.Empty;
if (_UserID != value)
{
@@ -134,13 +138,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("FirstName",true);
CanReadProperty("FirstName", true);
return _FirstName;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("FirstName",true);
CanWriteProperty("FirstName", true);
if (value == null) value = string.Empty;
if (_FirstName != value)
{
@@ -155,13 +159,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("MiddleName",true);
CanReadProperty("MiddleName", true);
return _MiddleName;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("MiddleName",true);
CanWriteProperty("MiddleName", true);
if (value == null) value = string.Empty;
if (_MiddleName != value)
{
@@ -176,13 +180,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("LastName",true);
CanReadProperty("LastName", true);
return _LastName;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("LastName",true);
CanWriteProperty("LastName", true);
if (value == null) value = string.Empty;
if (_LastName != value)
{
@@ -197,13 +201,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("Suffix",true);
CanReadProperty("Suffix", true);
return _Suffix;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("Suffix",true);
CanWriteProperty("Suffix", true);
if (value == null) value = string.Empty;
if (_Suffix != value)
{
@@ -218,13 +222,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("CourtesyTitle",true);
CanReadProperty("CourtesyTitle", true);
return _CourtesyTitle;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("CourtesyTitle",true);
CanWriteProperty("CourtesyTitle", true);
if (value == null) value = string.Empty;
if (_CourtesyTitle != value)
{
@@ -239,13 +243,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("PhoneNumber",true);
CanReadProperty("PhoneNumber", true);
return _PhoneNumber;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("PhoneNumber",true);
CanWriteProperty("PhoneNumber", true);
if (value == null) value = string.Empty;
if (_PhoneNumber != value)
{
@@ -260,13 +264,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("CFGName",true);
CanReadProperty("CFGName", true);
return _CFGName;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("CFGName",true);
CanWriteProperty("CFGName", true);
if (value == null) value = string.Empty;
if (_CFGName != value)
{
@@ -281,13 +285,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("UserLogin",true);
CanReadProperty("UserLogin", true);
return _UserLogin;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("UserLogin",true);
CanWriteProperty("UserLogin", true);
if (value == null) value = string.Empty;
if (_UserLogin != value)
{
@@ -302,13 +306,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("UserName",true);
CanReadProperty("UserName", true);
return _UserName;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("UserName",true);
CanWriteProperty("UserName", true);
if (value == null) value = string.Empty;
if (_UserName != value)
{
@@ -323,13 +327,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("Config",true);
CanReadProperty("Config", true);
return _Config;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("Config",true);
CanWriteProperty("Config", true);
if (value == null) value = string.Empty;
if (_Config != value)
{
@@ -344,13 +348,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("DTS",true);
CanReadProperty("DTS", true);
return _DTS;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("DTS",true);
CanWriteProperty("DTS", true);
if (_DTS != value)
{
_DTS = value;
@@ -364,13 +368,13 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("UsrID",true);
CanReadProperty("UsrID", true);
return _UsrID;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
set
{
CanWriteProperty("UsrID",true);
CanWriteProperty("UsrID", true);
if (value == null) value = string.Empty;
if (_UsrID != value)
{
@@ -389,7 +393,7 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("UserMembershipCount",true);
CanReadProperty("UserMembershipCount", true);
return _UserMembershipCount;
}
}
@@ -403,21 +407,21 @@ namespace VEPROMS.CSLA.Library
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
get
{
CanReadProperty("UserMemberships",true);
if(_UserMembershipCount > 0 && _UserMemberships == null)
CanReadProperty("UserMemberships", true);
if (_UserMembershipCount > 0 && _UserMemberships == null)
_UserMemberships = UserMemberships.GetByUID(UID);
else if(_UserMemberships == null)
else if (_UserMemberships == null)
_UserMemberships = UserMemberships.New();
return _UserMemberships;
}
}
public override bool IsDirty
{
get { return base.IsDirty || (_UserMemberships == null? false : _UserMemberships.IsDirty); }
get { return base.IsDirty || (_UserMemberships == null ? false : _UserMemberships.IsDirty); }
}
public override bool IsValid
{
get { return (IsNew && !IsDirty ? true : base.IsValid) && (_UserMemberships == null? true : _UserMemberships.IsValid); }
get { return (IsNew && !IsDirty ? true : base.IsValid) && (_UserMemberships == null ? true : _UserMemberships.IsValid); }
}
// TODO: Replace base User.ToString function as necessary
/// <summary>
@@ -440,22 +444,23 @@ namespace VEPROMS.CSLA.Library
#endregion
#region ValidationRules
[NonSerialized]
private bool _CheckingBrokenRules=false;
private bool _CheckingBrokenRules = false;
public IVEHasBrokenRules HasBrokenRules
{
get {
if(_CheckingBrokenRules)return null;
get
{
if (_CheckingBrokenRules) return null;
if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this;
try
{
_CheckingBrokenRules=true;
_CheckingBrokenRules = true;
IVEHasBrokenRules hasBrokenRules = null;
if (_UserMemberships != null && (hasBrokenRules = _UserMemberships.HasBrokenRules) != null) return hasBrokenRules;
if (_UserMemberships != null && (hasBrokenRules = _UserMemberships.HasBrokenRules) != null) return hasBrokenRules;
return hasBrokenRules;
}
finally
{
_CheckingBrokenRules=false;
_CheckingBrokenRules = false;
}
}
}
@@ -612,14 +617,25 @@ namespace VEPROMS.CSLA.Library
#region Factory Methods
public int CurrentEditLevel
{ get { return EditLevel; } }
private static int _UserUnique = 0;
private int _MyUserUnique;
public int MyUserUnique
{
get { return _MyUserUnique; }
}
protected User()
{/* require use of factory methods */
_MyUserUnique = ++_UserUnique;
_AllList.Add(this);
}
public void Dispose()
{
_AllList.Remove(this);
_AllByPrimaryKey.Remove(UID.ToString());
if (!_AllByPrimaryKey.ContainsKey(UID.ToString())) return;
List<User> listUser = _AllByPrimaryKey[UID.ToString()]; // Get the list of items
listUser.Remove(this); // Remove the item from the list
if (listUser.Count == 0) //If there are no items left in the list
_AllByPrimaryKey.Remove(UID.ToString()); // remove the list
}
public static User New()
{
@@ -709,7 +725,7 @@ namespace VEPROMS.CSLA.Library
if (tmp == null)
{
tmp = DataPortal.Fetch<User>(new PKCriteria(uid));
_AllList.Add(tmp);
if (!_AllList.Contains(tmp)) _AllList.Add(tmp);
}
if (tmp.ErrorMessage == "No Record Found") tmp = null;
return tmp;
@@ -789,7 +805,7 @@ namespace VEPROMS.CSLA.Library
}
private void ReadData(SafeDataReader dr)
{
if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("[{0}] User.ReadData", GetHashCode());
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.ReadData", GetHashCode());
try
{
_UID = dr.GetInt32("UID");
@@ -812,14 +828,14 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("User.ReadData", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("User.ReadData", ex);
_ErrorMessage = ex.Message;
throw new DbCslaException("User.ReadData", ex);
}
}
private void DataPortal_Fetch(PKCriteria criteria)
{
if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("[{0}] User.DataPortal_Fetch", GetHashCode());
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.DataPortal_Fetch", GetHashCode());
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
@@ -850,7 +866,7 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("User.DataPortal_Fetch", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("User.DataPortal_Fetch", ex);
_ErrorMessage = ex.Message;
throw new DbCslaException("User.DataPortal_Fetch", ex);
}
@@ -871,13 +887,13 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("User.DataPortal_Insert", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("User.DataPortal_Insert", ex);
_ErrorMessage = ex.Message;
throw new DbCslaException("User.DataPortal_Insert", ex);
}
finally
{
if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("[{0}] User.DataPortal_Insert", GetHashCode());
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.DataPortal_Insert", GetHashCode());
}
}
[Transactional(TransactionalTypes.TransactionScope)]
@@ -921,11 +937,11 @@ namespace VEPROMS.CSLA.Library
MarkOld();
// update child objects
if (_UserMemberships != null) _UserMemberships.Update(this);
if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("[{0}] User.SQLInsert", GetHashCode());
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.SQLInsert", GetHashCode());
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("User.SQLInsert", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("User.SQLInsert", ex);
_ErrorMessage = ex.Message;
throw new DbCslaException("User.SQLInsert", ex);
}
@@ -933,7 +949,7 @@ namespace VEPROMS.CSLA.Library
[Transactional(TransactionalTypes.TransactionScope)]
public static byte[] Add(SqlConnection cn, ref int uid, string userID, string firstName, string middleName, string lastName, string suffix, string courtesyTitle, string phoneNumber, string cFGName, string userLogin, string userName, string config, DateTime dts, string usrID)
{
if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("[{0}] User.Add", 0);
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.Add", 0);
try
{
using (SqlCommand cm = cn.CreateCommand())
@@ -970,7 +986,7 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("User.Add", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("User.Add", ex);
throw new DbCslaException("User.Add", ex);
}
}
@@ -978,7 +994,7 @@ namespace VEPROMS.CSLA.Library
protected override void DataPortal_Update()
{
if (!IsDirty) return; // If not dirty - nothing to do
if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("[{0}] User.DataPortal_Update", GetHashCode());
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.DataPortal_Update", GetHashCode());
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
@@ -992,7 +1008,7 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("User.DataPortal_Update", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("User.DataPortal_Update", ex);
_ErrorMessage = ex.Message;
if (!ex.Message.EndsWith("has been edited by another user.")) throw ex;
}
@@ -1001,7 +1017,7 @@ namespace VEPROMS.CSLA.Library
internal void SQLUpdate()
{
if (!IsDirty) return; // If not dirty - nothing to do
if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("[{0}] User.SQLUpdate", GetHashCode());
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.SQLUpdate", GetHashCode());
try
{
SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"];
@@ -1043,7 +1059,7 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("User.SQLUpdate", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("User.SQLUpdate", ex);
_ErrorMessage = ex.Message;
if (!ex.Message.EndsWith("has been edited by another user.")) throw ex;
}
@@ -1065,7 +1081,7 @@ namespace VEPROMS.CSLA.Library
[Transactional(TransactionalTypes.TransactionScope)]
public static byte[] Update(SqlConnection cn, ref int uid, string userID, string firstName, string middleName, string lastName, string suffix, string courtesyTitle, string phoneNumber, string cFGName, string userLogin, string userName, string config, DateTime dts, string usrID, ref byte[] lastChanged)
{
if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("[{0}] User.Update", 0);
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.Update", 0);
try
{
using (SqlCommand cm = cn.CreateCommand())
@@ -1100,7 +1116,7 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("User.Update", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("User.Update", ex);
throw new DbCslaException("User.Update", ex);
}
}
@@ -1112,7 +1128,7 @@ namespace VEPROMS.CSLA.Library
[Transactional(TransactionalTypes.TransactionScope)]
private void DataPortal_Delete(PKCriteria criteria)
{
if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("[{0}] User.DataPortal_Delete", GetHashCode());
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.DataPortal_Delete", GetHashCode());
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
@@ -1128,7 +1144,7 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("User.DataPortal_Delete", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("User.DataPortal_Delete", ex);
_ErrorMessage = ex.Message;
throw new DbCslaException("User.DataPortal_Delete", ex);
}
@@ -1136,7 +1152,7 @@ namespace VEPROMS.CSLA.Library
[Transactional(TransactionalTypes.TransactionScope)]
public static void Remove(SqlConnection cn, int uid)
{
if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("[{0}] User.Remove", 0);
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.Remove", 0);
try
{
using (SqlCommand cm = cn.CreateCommand())
@@ -1151,7 +1167,7 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("User.Remove", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("User.Remove", ex);
throw new DbCslaException("User.Remove", ex);
}
}
@@ -1185,7 +1201,7 @@ namespace VEPROMS.CSLA.Library
}
protected override void DataPortal_Execute()
{
if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("[{0}] User.DataPortal_Execute", GetHashCode());
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.DataPortal_Execute", GetHashCode());
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
@@ -1203,7 +1219,7 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
if(_MyLog.IsErrorEnabled)_MyLog.Error("User.DataPortal_Execute", ex);
if (_MyLog.IsErrorEnabled) _MyLog.Error("User.DataPortal_Execute", ex);
throw new DbCslaException("User.DataPortal_Execute", ex);
}
}