diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/RODbROFst.cs b/PROMS/VEPROMS.CSLA.Library/Generated/RODbROFst.cs new file mode 100644 index 00000000..435d814a --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/RODbROFst.cs @@ -0,0 +1,440 @@ +// ======================================================================== +// 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 Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// RODbROFst Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(RODbROFstConverter))] + public partial class RODbROFst : 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 _ROFstID; + [System.ComponentModel.DataObjectField(true, true)] + 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; + [System.ComponentModel.DataObjectField(true, true)] + 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; + } + } + private byte[] _ROLookup; + public byte[] ROLookup + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROLookup", true); + return _ROLookup; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("ROLookup", true); + if (_ROLookup != value) + { + _ROLookup = 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 + // TODO: Check RODbROFst.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 RODbROFst + protected override object GetIdValue() + { + return _ROFstID; + } + // TODO: Replace base RODbROFst.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current RODbROFst + //public override string ToString() + //{ + // return base.ToString(); + //} + #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; + 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.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)); + // TODO: Add other validation rules + } + // Sample data comparison validation rule + //private bool StartDateGTEndDate(object target, Csla.Validation.RuleArgs e) + //{ + // if (_started > _ended) + // { + // e.Description = "Start date can't be after end date"; + // return false; + // } + // else + // return true; + //} + #endregion + #region Authorization Rules + protected override void AddAuthorizationRules() + { + //TODO: Who can read/write which fields + //AuthorizationRules.AllowRead(ROFstID, ""); + //AuthorizationRules.AllowRead(ROLookup, ""); + //AuthorizationRules.AllowWrite(ROLookup, ""); + //AuthorizationRules.AllowRead(Config, ""); + //AuthorizationRules.AllowWrite(Config, ""); + //AuthorizationRules.AllowRead(DTS, ""); + //AuthorizationRules.AllowWrite(DTS, ""); + //AuthorizationRules.AllowRead(UserID, ""); + //AuthorizationRules.AllowWrite(UserID, ""); + } + 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; } } + internal static RODbROFst New(byte[] rOLookup) + { + return new RODbROFst(rOLookup); + } + internal static RODbROFst Get(SafeDataReader dr) + { + return new RODbROFst(dr); + } + public RODbROFst() + { + MarkAsChild(); + _ROFstID = ROFst.NextROFstID; + _DTS = _RODbROFstExtension.DefaultDTS; + _UserID = _RODbROFstExtension.DefaultUserID; + ValidationRules.CheckRules(); + } + private RODbROFst(byte[] rOLookup) + { + MarkAsChild(); + // TODO: Add any initialization & defaults + _DTS = _RODbROFstExtension.DefaultDTS; + _UserID = _RODbROFstExtension.DefaultUserID; + _ROLookup = rOLookup; + ValidationRules.CheckRules(); + } + internal RODbROFst(SafeDataReader dr) + { + MarkAsChild(); + Fetch(dr); + } + #endregion + #region Data Access Portal + private void Fetch(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODbROFst.FetchDR", GetHashCode()); + try + { + _ROFstID = dr.GetInt32("ROFstID"); + _ROLookup = (byte[])dr.GetValue("ROLookup"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + } + catch (Exception ex) // FKItem Fetch + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("RODbROFst.FetchDR", ex); + throw new DbCslaException("RODbROFst.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 = ROFst.Add(cn, ref _ROFstID, myRODb, _ROLookup, _Config, _DTS, _UserID); + 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 = ROFst.Update(cn, ref _ROFstID, myRODb, _ROLookup, _Config, _DTS, _UserID, ref _LastChanged); + 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"]; + ROFst.Remove(cn, _ROFstID); + MarkNew(); + } + #endregion + // Standard Default Code + #region extension + RODbROFstExtension _RODbROFstExtension = new RODbROFstExtension(); + [Serializable()] + partial class RODbROFstExtension : 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 RODbROFstConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is RODbROFst) + { + // Return the ToString value + return ((RODbROFst)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create RODbROFstExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class RODbROFst +// { +// partial class RODbROFstExtension : 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/RODbROFsts.cs b/PROMS/VEPROMS.CSLA.Library/Generated/RODbROFsts.cs new file mode 100644 index 00000000..b8123514 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/RODbROFsts.cs @@ -0,0 +1,304 @@ +// ======================================================================== +// 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 Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// RODbROFsts Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(RODbROFstsConverter))] + public partial class RODbROFsts : 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 RODbROFst this[ROFst myROFst] + { + get + { + foreach (RODbROFst rOFst in this) + if (rOFst.ROFstID == myROFst.ROFstID) + return rOFst; + return null; + } + } + public new System.Collections.Generic.IList Items + { + get { return base.Items; } + } + public RODbROFst GetItem(ROFst myROFst) + { + foreach (RODbROFst rOFst in this) + if (rOFst.ROFstID == myROFst.ROFstID) + return rOFst; + return null; + } + public RODbROFst Add(byte[] rOLookup) // One to Many + { + RODbROFst rOFst = RODbROFst.New(rOLookup); + this.Add(rOFst); + return rOFst; + } + public void Remove(ROFst myROFst) + { + foreach (RODbROFst rOFst in this) + { + if (rOFst.ROFstID == myROFst.ROFstID) + { + Remove(rOFst); + break; + } + } + } + public bool Contains(ROFst myROFst) + { + foreach (RODbROFst rOFst in this) + if (rOFst.ROFstID == myROFst.ROFstID) + return true; + return false; + } + public bool ContainsDeleted(ROFst myROFst) + { + foreach (RODbROFst rOFst in DeletedList) + if (rOFst.ROFstID == myROFst.ROFstID) + return true; + return false; + } + public bool Contains(DateTime dts) + { + foreach (RODbROFst rOFst in this) + if (rOFst.DTS == dts) + return true; + return false; + } + public bool ContainsDeleted(DateTime dts) + { + foreach (RODbROFst rOFst in DeletedList) + if (rOFst.DTS == dts) + return true; + return false; + } + #endregion + #region ValidationRules + public IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + foreach (RODbROFst rODbROFst in this) + if ((hasBrokenRules = rODbROFst.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 RODbROFsts New() + { + return new RODbROFsts(); + } + internal static RODbROFsts Get(SafeDataReader dr) + { + return new RODbROFsts(dr); + } + public static RODbROFsts GetByRODbID(int rODbID) + { + try + { + return DataPortal.Fetch(new RODbIDCriteria(rODbID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on RODbROFsts.GetByRODbID", ex); + } + } + private RODbROFsts() + { + MarkAsChild(); + } + internal RODbROFsts(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(RODbROFst.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}] RODbROFsts.DataPortal_FetchRODbID", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getROFstsByRODbID"; + cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + while (dr.Read()) this.Add(new RODbROFst(dr)); + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("RODbROFsts.DataPortal_FetchRODbID", ex); + throw new DbCslaException("RODbROFsts.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } + internal void Update(RODb rODb) + { + this.RaiseListChangedEvents = false; + try + { + // update (thus deleting) any deleted child objects + foreach (RODbROFst 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 (RODbROFst 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 + RODbROFstsPropertyDescriptor pd = new RODbROFstsPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class RODbROFstsPropertyDescriptor : vlnListPropertyDescriptor + { + private RODbROFst Item { get { return (RODbROFst)_Item; } } + public RODbROFstsPropertyDescriptor(RODbROFsts collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class RODbROFstsConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is RODbROFsts) + { + // Return department and department role separated by comma. + return ((RODbROFsts)value).Items.Count.ToString() + " ROFsts"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/RODbROImage.cs b/PROMS/VEPROMS.CSLA.Library/Generated/RODbROImage.cs new file mode 100644 index 00000000..348bdc57 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/RODbROImage.cs @@ -0,0 +1,470 @@ +// ======================================================================== +// 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 Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// RODbROImage Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(RODbROImageConverter))] + public partial class RODbROImage : 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 _ImageID; + [System.ComponentModel.DataObjectField(true, true)] + public int ImageID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ImageID", true); + if (_MyROImage != null) _ImageID = _MyROImage.ImageID; + return _ImageID; + } + } + private ROImage _MyROImage; + [System.ComponentModel.DataObjectField(true, true)] + public ROImage MyROImage + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyROImage", true); + if (_MyROImage == null && _ImageID != 0) _MyROImage = ROImage.Get(_ImageID); + return _MyROImage; + } + } + private string _FileName = string.Empty; + public string FileName + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("FileName", true); + return _FileName; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("FileName", true); + if (value == null) value = string.Empty; + if (_FileName != value) + { + _FileName = value; + PropertyHasChanged(); + } + } + } + private byte[] _Content; + public byte[] Content + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Content", true); + return _Content; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("Content", true); + if (_Content != value) + { + _Content = 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 + // TODO: Check RODbROImage.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 RODbROImage + protected override object GetIdValue() + { + return _ImageID; + } + // TODO: Replace base RODbROImage.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current RODbROImage + //public override string ToString() + //{ + // return base.ToString(); + //} + #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; + 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, "FileName"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("FileName", 255)); + 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)); + // TODO: Add other validation rules + } + // Sample data comparison validation rule + //private bool StartDateGTEndDate(object target, Csla.Validation.RuleArgs e) + //{ + // if (_started > _ended) + // { + // e.Description = "Start date can't be after end date"; + // return false; + // } + // else + // return true; + //} + #endregion + #region Authorization Rules + protected override void AddAuthorizationRules() + { + //TODO: Who can read/write which fields + //AuthorizationRules.AllowRead(ImageID, ""); + //AuthorizationRules.AllowRead(FileName, ""); + //AuthorizationRules.AllowWrite(FileName, ""); + //AuthorizationRules.AllowRead(Content, ""); + //AuthorizationRules.AllowWrite(Content, ""); + //AuthorizationRules.AllowRead(Config, ""); + //AuthorizationRules.AllowWrite(Config, ""); + //AuthorizationRules.AllowRead(DTS, ""); + //AuthorizationRules.AllowWrite(DTS, ""); + //AuthorizationRules.AllowRead(UserID, ""); + //AuthorizationRules.AllowWrite(UserID, ""); + } + 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; } } + internal static RODbROImage New(string fileName, byte[] content) + { + return new RODbROImage(fileName, content); + } + internal static RODbROImage Get(SafeDataReader dr) + { + return new RODbROImage(dr); + } + public RODbROImage() + { + MarkAsChild(); + _ImageID = ROImage.NextImageID; + _DTS = _RODbROImageExtension.DefaultDTS; + _UserID = _RODbROImageExtension.DefaultUserID; + ValidationRules.CheckRules(); + } + private RODbROImage(string fileName, byte[] content) + { + MarkAsChild(); + // TODO: Add any initialization & defaults + _DTS = _RODbROImageExtension.DefaultDTS; + _UserID = _RODbROImageExtension.DefaultUserID; + _FileName = fileName; + _Content = content; + ValidationRules.CheckRules(); + } + internal RODbROImage(SafeDataReader dr) + { + MarkAsChild(); + Fetch(dr); + } + #endregion + #region Data Access Portal + private void Fetch(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODbROImage.FetchDR", GetHashCode()); + try + { + _ImageID = dr.GetInt32("ImageID"); + _FileName = dr.GetString("FileName"); + _Content = (byte[])dr.GetValue("Content"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + } + catch (Exception ex) // FKItem Fetch + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("RODbROImage.FetchDR", ex); + throw new DbCslaException("RODbROImage.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 = ROImage.Add(cn, ref _ImageID, myRODb, _FileName, _Content, _Config, _DTS, _UserID); + 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 = ROImage.Update(cn, ref _ImageID, myRODb, _FileName, _Content, _Config, _DTS, _UserID, ref _LastChanged); + 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"]; + ROImage.Remove(cn, _ImageID); + MarkNew(); + } + #endregion + // Standard Default Code + #region extension + RODbROImageExtension _RODbROImageExtension = new RODbROImageExtension(); + [Serializable()] + partial class RODbROImageExtension : 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 RODbROImageConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is RODbROImage) + { + // Return the ToString value + return ((RODbROImage)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create RODbROImageExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class RODbROImage +// { +// partial class RODbROImageExtension : 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/RODbROImages.cs b/PROMS/VEPROMS.CSLA.Library/Generated/RODbROImages.cs new file mode 100644 index 00000000..8b441259 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/RODbROImages.cs @@ -0,0 +1,304 @@ +// ======================================================================== +// 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 Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// RODbROImages Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(RODbROImagesConverter))] + public partial class RODbROImages : 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 RODbROImage this[ROImage myROImage] + { + get + { + foreach (RODbROImage rOImage in this) + if (rOImage.ImageID == myROImage.ImageID) + return rOImage; + return null; + } + } + public new System.Collections.Generic.IList Items + { + get { return base.Items; } + } + public RODbROImage GetItem(ROImage myROImage) + { + foreach (RODbROImage rOImage in this) + if (rOImage.ImageID == myROImage.ImageID) + return rOImage; + return null; + } + public RODbROImage Add(string fileName, byte[] content) // One to Many + { + RODbROImage rOImage = RODbROImage.New(fileName, content); + this.Add(rOImage); + return rOImage; + } + public void Remove(ROImage myROImage) + { + foreach (RODbROImage rOImage in this) + { + if (rOImage.ImageID == myROImage.ImageID) + { + Remove(rOImage); + break; + } + } + } + public bool Contains(ROImage myROImage) + { + foreach (RODbROImage rOImage in this) + if (rOImage.ImageID == myROImage.ImageID) + return true; + return false; + } + public bool ContainsDeleted(ROImage myROImage) + { + foreach (RODbROImage rOImage in DeletedList) + if (rOImage.ImageID == myROImage.ImageID) + return true; + return false; + } + public bool Contains(string fileName, DateTime dts) + { + foreach (RODbROImage rOImage in this) + if (rOImage.FileName == fileName && rOImage.DTS == dts) + return true; + return false; + } + public bool ContainsDeleted(string fileName, DateTime dts) + { + foreach (RODbROImage rOImage in DeletedList) + if (rOImage.FileName == fileName && rOImage.DTS == dts) + return true; + return false; + } + #endregion + #region ValidationRules + public IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + foreach (RODbROImage rODbROImage in this) + if ((hasBrokenRules = rODbROImage.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 RODbROImages New() + { + return new RODbROImages(); + } + internal static RODbROImages Get(SafeDataReader dr) + { + return new RODbROImages(dr); + } + public static RODbROImages GetByRODbID(int rODbID) + { + try + { + return DataPortal.Fetch(new RODbIDCriteria(rODbID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on RODbROImages.GetByRODbID", ex); + } + } + private RODbROImages() + { + MarkAsChild(); + } + internal RODbROImages(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(RODbROImage.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}] RODbROImages.DataPortal_FetchRODbID", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getROImagesByRODbID"; + cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + while (dr.Read()) this.Add(new RODbROImage(dr)); + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("RODbROImages.DataPortal_FetchRODbID", ex); + throw new DbCslaException("RODbROImages.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } + internal void Update(RODb rODb) + { + this.RaiseListChangedEvents = false; + try + { + // update (thus deleting) any deleted child objects + foreach (RODbROImage 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 (RODbROImage 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 + RODbROImagesPropertyDescriptor pd = new RODbROImagesPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class RODbROImagesPropertyDescriptor : vlnListPropertyDescriptor + { + private RODbROImage Item { get { return (RODbROImage)_Item; } } + public RODbROImagesPropertyDescriptor(RODbROImages collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class RODbROImagesConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is RODbROImages) + { + // Return department and department role separated by comma. + return ((RODbROImages)value).Items.Count.ToString() + " ROImages"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/RODbRoUsage.cs b/PROMS/VEPROMS.CSLA.Library/Generated/RODbRoUsage.cs new file mode 100644 index 00000000..fb2627fe --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/RODbRoUsage.cs @@ -0,0 +1,590 @@ +// ======================================================================== +// 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 Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// RODbRoUsage Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(RODbRoUsageConverter))] + public partial class RODbRoUsage : 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 _ROUsageID; + [System.ComponentModel.DataObjectField(true, true)] + public int ROUsageID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROUsageID", true); + if (_MyRoUsage != null) _ROUsageID = _MyRoUsage.ROUsageID; + return _ROUsageID; + } + } + private RoUsage _MyRoUsage; + [System.ComponentModel.DataObjectField(true, true)] + public RoUsage MyRoUsage + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyRoUsage", true); + if (_MyRoUsage == null && _ROUsageID != 0) _MyRoUsage = RoUsage.Get(_ROUsageID); + return _MyRoUsage; + } + } + private int _ContentID; + public int ContentID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ContentID", true); + if (_MyContent != null) _ContentID = _MyContent.ContentID; + return _ContentID; + } + } + private Content _MyContent; + public Content MyContent + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyContent", true); + if (_MyContent == null && _ContentID != 0) _MyContent = Content.Get(_ContentID); + return _MyContent; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("MyContent", true); + if (_MyContent != value) + { + _MyContent = value; + 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 _Content_Number = string.Empty; + public string Content_Number + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Content_Number", true); + return _Content_Number; + } + } + private string _Content_Text = string.Empty; + public string Content_Text + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Content_Text", true); + return _Content_Text; + } + } + private int? _Content_Type; + /// + /// 0 - Procedure, 10000 - Section, 20000 Step + /// + public int? Content_Type + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Content_Type", true); + return _Content_Type; + } + } + private int? _Content_FormatID; + public int? Content_FormatID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Content_FormatID", true); + return _Content_FormatID; + } + } + private string _Content_Config = string.Empty; + public string Content_Config + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Content_Config", true); + return _Content_Config; + } + } + private DateTime _Content_DTS = new DateTime(); + public DateTime Content_DTS + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Content_DTS", true); + return _Content_DTS; + } + } + private string _Content_UserID = string.Empty; + public string Content_UserID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Content_UserID", true); + return _Content_UserID; + } + } + // TODO: Check RODbRoUsage.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 RODbRoUsage + protected override object GetIdValue() + { + return _ROUsageID; + } + // TODO: Replace base RODbRoUsage.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current RODbRoUsage + //public override string ToString() + //{ + // return base.ToString(); + //} + public override bool IsDirty + { + get { return base.IsDirty || (_MyContent == null ? false : _MyContent.IsDirty); } + } + public override bool IsValid + { + get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyContent == null ? true : _MyContent.IsValid); } + } + #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 (_MyContent != null && (hasBrokenRules = _MyContent.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(MyContentRequired, "MyContent"); + 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)); + // TODO: Add other validation rules + } + private static bool MyContentRequired(RODbRoUsage target, Csla.Validation.RuleArgs e) + { + if (target._ContentID == 0 && target._MyContent == 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(ROUsageID, ""); + //AuthorizationRules.AllowRead(ContentID, ""); + //AuthorizationRules.AllowWrite(ContentID, ""); + //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() + { + // 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; } } + internal static RODbRoUsage New(string roid) + { + return new RODbRoUsage(roid); + } + internal static RODbRoUsage Get(SafeDataReader dr) + { + return new RODbRoUsage(dr); + } + public RODbRoUsage() + { + MarkAsChild(); + _ROUsageID = RoUsage.NextROUsageID; + _ContentID = _RODbRoUsageExtension.DefaultContentID; + _DTS = _RODbRoUsageExtension.DefaultDTS; + _UserID = _RODbRoUsageExtension.DefaultUserID; + ValidationRules.CheckRules(); + } + private RODbRoUsage(string roid) + { + MarkAsChild(); + // TODO: Add any initialization & defaults + _ContentID = _RODbRoUsageExtension.DefaultContentID; + _DTS = _RODbRoUsageExtension.DefaultDTS; + _UserID = _RODbRoUsageExtension.DefaultUserID; + _ROID = roid; + ValidationRules.CheckRules(); + } + internal RODbRoUsage(SafeDataReader dr) + { + MarkAsChild(); + Fetch(dr); + } + #endregion + #region Data Access Portal + private void Fetch(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODbRoUsage.FetchDR", GetHashCode()); + try + { + _ROUsageID = dr.GetInt32("ROUsageID"); + _ContentID = dr.GetInt32("ContentID"); + _ROID = dr.GetString("ROID"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + _Content_Number = dr.GetString("Content_Number"); + _Content_Text = dr.GetString("Content_Text"); + _Content_Type = (int?)dr.GetValue("Content_Type"); + _Content_FormatID = (int?)dr.GetValue("Content_FormatID"); + _Content_Config = dr.GetString("Content_Config"); + _Content_DTS = dr.GetDateTime("Content_DTS"); + _Content_UserID = dr.GetString("Content_UserID"); + } + catch (Exception ex) // FKItem Fetch + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("RODbRoUsage.FetchDR", ex); + throw new DbCslaException("RODbRoUsage.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 = RoUsage.Add(cn, ref _ROUsageID, _MyContent, _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 = RoUsage.Update(cn, ref _ROUsageID, _MyContent, _ROID, _Config, _DTS, _UserID, ref _LastChanged, myRODb); + 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"]; + RoUsage.Remove(cn, _ROUsageID); + MarkNew(); + } + #endregion + // Standard Default Code + #region extension + RODbRoUsageExtension _RODbRoUsageExtension = new RODbRoUsageExtension(); + [Serializable()] + partial class RODbRoUsageExtension : extensionBase + { + } + [Serializable()] + class extensionBase + { + // Default Values + public virtual int DefaultContentID + { + 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 RODbRoUsageConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is RODbRoUsage) + { + // Return the ToString value + return ((RODbRoUsage)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create RODbRoUsageExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class RODbRoUsage +// { +// partial class RODbRoUsageExtension : extensionBase +// { +// // TODO: Override automatic defaults +// public virtual int DefaultContentID +// { +// 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/RODbRoUsages.cs b/PROMS/VEPROMS.CSLA.Library/Generated/RODbRoUsages.cs new file mode 100644 index 00000000..4e5a4c3b --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/RODbRoUsages.cs @@ -0,0 +1,290 @@ +// ======================================================================== +// 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 Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// RODbRoUsages Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(RODbRoUsagesConverter))] + public partial class RODbRoUsages : 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 RODbRoUsage this[RoUsage myRoUsage] + { + get + { + foreach (RODbRoUsage roUsage in this) + if (roUsage.ROUsageID == myRoUsage.ROUsageID) + return roUsage; + return null; + } + } + public new System.Collections.Generic.IList Items + { + get { return base.Items; } + } + public RODbRoUsage GetItem(RoUsage myRoUsage) + { + foreach (RODbRoUsage roUsage in this) + if (roUsage.ROUsageID == myRoUsage.ROUsageID) + return roUsage; + return null; + } + public RODbRoUsage Add(string roid) // One to Many + { + RODbRoUsage roUsage = RODbRoUsage.New(roid); + this.Add(roUsage); + return roUsage; + } + public void Remove(RoUsage myRoUsage) + { + foreach (RODbRoUsage roUsage in this) + { + if (roUsage.ROUsageID == myRoUsage.ROUsageID) + { + Remove(roUsage); + break; + } + } + } + public bool Contains(RoUsage myRoUsage) + { + foreach (RODbRoUsage roUsage in this) + if (roUsage.ROUsageID == myRoUsage.ROUsageID) + return true; + return false; + } + public bool ContainsDeleted(RoUsage myRoUsage) + { + foreach (RODbRoUsage roUsage in DeletedList) + if (roUsage.ROUsageID == myRoUsage.ROUsageID) + return true; + return false; + } + #endregion + #region ValidationRules + public IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + foreach (RODbRoUsage rODbRoUsage in this) + if ((hasBrokenRules = rODbRoUsage.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 RODbRoUsages New() + { + return new RODbRoUsages(); + } + internal static RODbRoUsages Get(SafeDataReader dr) + { + return new RODbRoUsages(dr); + } + public static RODbRoUsages GetByRODbID(int rODbID) + { + try + { + return DataPortal.Fetch(new RODbIDCriteria(rODbID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on RODbRoUsages.GetByRODbID", ex); + } + } + private RODbRoUsages() + { + MarkAsChild(); + } + internal RODbRoUsages(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(RODbRoUsage.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}] RODbRoUsages.DataPortal_FetchRODbID", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getRoUsagesByRODbID"; + cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + while (dr.Read()) this.Add(new RODbRoUsage(dr)); + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("RODbRoUsages.DataPortal_FetchRODbID", ex); + throw new DbCslaException("RODbRoUsages.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } + internal void Update(RODb rODb) + { + this.RaiseListChangedEvents = false; + try + { + // update (thus deleting) any deleted child objects + foreach (RODbRoUsage 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 (RODbRoUsage 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 + RODbRoUsagesPropertyDescriptor pd = new RODbRoUsagesPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class RODbRoUsagesPropertyDescriptor : vlnListPropertyDescriptor + { + private RODbRoUsage Item { get { return (RODbRoUsage)_Item; } } + public RODbRoUsagesPropertyDescriptor(RODbRoUsages collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class RODbRoUsagesConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is RODbRoUsages) + { + // Return department and department role separated by comma. + return ((RODbRoUsages)value).Items.Count.ToString() + " RoUsages"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/ROFst.cs b/PROMS/VEPROMS.CSLA.Library/Generated/ROFst.cs new file mode 100644 index 00000000..7d9b2075 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/ROFst.cs @@ -0,0 +1,1275 @@ +// ======================================================================== +// 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 +{ + /// + /// ROFst Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(ROFstConverter))] + public partial class ROFst : BusinessBase, IDisposable, IVEHasBrokenRules + { + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Refresh + private List _RefreshROFsts = new List(); + private List _RefreshROFstAssociations = new List(); + private List _RefreshROFstFigures = new List(); + private void AddToRefreshList(List refreshROFsts, List refreshROFstAssociations, List refreshROFstFigures) + { + if (IsDirty) + refreshROFsts.Add(this); + if (_ROFstAssociations != null && _ROFstAssociations.IsDirty) + { + foreach (ROFstAssociation tmp in _ROFstAssociations) + { + if (tmp.IsDirty) refreshROFstAssociations.Add(tmp); + } + } + if (_ROFstFigures != null && _ROFstFigures.IsDirty) + { + foreach (ROFstFigure tmp in _ROFstFigures) + { + if (tmp.IsDirty) refreshROFstFigures.Add(tmp); + } + } + } + private void BuildRefreshList() + { + _RefreshROFsts = new List(); + _RefreshROFstAssociations = new List(); + _RefreshROFstFigures = new List(); + AddToRefreshList(_RefreshROFsts, _RefreshROFstAssociations, _RefreshROFstFigures); + } + private void ProcessRefreshList() + { + foreach (ROFst tmp in _RefreshROFsts) + { + ROFstInfo.Refresh(tmp); + if (tmp._MyRODb != null) RODbInfo.Refresh(tmp._MyRODb); + } + foreach (ROFstAssociation tmp in _RefreshROFstAssociations) + { + AssociationInfo.Refresh(tmp); + } + foreach (ROFstFigure tmp in _RefreshROFstFigures) + { + FigureInfo.Refresh(tmp); + } + } + #endregion + #region Collection + private static List _CacheList = new List(); + protected static void AddToCache(ROFst rOFst) + { + if (!_CacheList.Contains(rOFst)) _CacheList.Add(rOFst); // In AddToCache + } + protected static void RemoveFromCache(ROFst rOFst) + { + while (_CacheList.Contains(rOFst)) _CacheList.Remove(rOFst); // In RemoveFromCache + } + private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); + private static Dictionary> _CacheByRODbID_DTS = new Dictionary>(); + private static void ConvertListToDictionary() + { + List remove = new List(); + foreach (ROFst tmp in _CacheList) + { + if (!_CacheByPrimaryKey.ContainsKey(tmp.ROFstID.ToString())) + { + _CacheByPrimaryKey[tmp.ROFstID.ToString()] = new List(); // Add new list for PrimaryKey + _CacheByRODbID_DTS[tmp.RODbID.ToString() + "_" + tmp.DTS.ToString()] = new List(); // Add new list for RODbID_DTS + } + _CacheByPrimaryKey[tmp.ROFstID.ToString()].Add(tmp); // Add to Primary Key list + _CacheByRODbID_DTS[tmp.RODbID.ToString() + "_" + tmp.DTS.ToString()].Add(tmp); // Unique Index + remove.Add(tmp); + } + foreach (ROFst tmp in remove) + RemoveFromCache(tmp); + } + protected static ROFst GetCachedByPrimaryKey(int rOFstID) + { + ConvertListToDictionary(); + string key = rOFstID.ToString(); + if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; + return null; + } + protected static ROFst GetCachedByRODbID_DTS(int rODbID, DateTime dts) + { + ConvertListToDictionary(); + string key = rODbID.ToString() + "_" + dts.ToString(); + if (_CacheByRODbID_DTS.ContainsKey(key)) return _CacheByRODbID_DTS[key][0]; + return null; + } + #endregion + #region Business Methods + private string _ErrorMessage = string.Empty; + public string ErrorMessage + { + get { return _ErrorMessage; } + } + private static int _nextROFstID = -1; + public static int NextROFstID + { + get { return _nextROFstID--; } + } + private int _ROFstID; + [System.ComponentModel.DataObjectField(true, true)] + public int ROFstID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFstID", true); + return _ROFstID; + } + } + 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; + PropertyHasChanged(); + } + } + } + private byte[] _ROLookup; + public byte[] ROLookup + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROLookup", true); + return _ROLookup; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("ROLookup", true); + if (_ROLookup != value) + { + _ROLookup = 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 _ROFstAssociationCount = 0; + /// + /// Count of ROFstAssociations for this ROFst + /// + public int ROFstAssociationCount + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFstAssociationCount", true); + return _ROFstAssociationCount; + } + } + private ROFstAssociations _ROFstAssociations = null; + /// + /// Related Field + /// + [TypeConverter(typeof(ROFstAssociationsConverter))] + public ROFstAssociations ROFstAssociations + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFstAssociations", true); + if (_ROFstAssociationCount < 0 || (_ROFstAssociationCount > 0 && _ROFstAssociations == null)) + _ROFstAssociations = ROFstAssociations.GetByROFstID(ROFstID); + if (_ROFstAssociationCount < 0 ) + _ROFstAssociationCount = _ROFstAssociations == null ? 0 : _ROFstAssociations.Count; + if (_ROFstAssociations == null) + _ROFstAssociations = ROFstAssociations.New(); + return _ROFstAssociations; + } + } + public void Reset_ROFstAssociations() + { + _ROFstAssociationCount = -1; + } + private int _ROFstFigureCount = 0; + /// + /// Count of ROFstFigures for this ROFst + /// + public int ROFstFigureCount + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFstFigureCount", true); + return _ROFstFigureCount; + } + } + private ROFstFigures _ROFstFigures = null; + /// + /// Related Field + /// + [TypeConverter(typeof(ROFstFiguresConverter))] + public ROFstFigures ROFstFigures + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFstFigures", true); + if (_ROFstFigureCount < 0 || (_ROFstFigureCount > 0 && _ROFstFigures == null)) + _ROFstFigures = ROFstFigures.GetByROFstID(ROFstID); + if (_ROFstFigureCount < 0 ) + _ROFstFigureCount = _ROFstFigures == null ? 0 : _ROFstFigures.Count; + if (_ROFstFigures == null) + _ROFstFigures = ROFstFigures.New(); + return _ROFstFigures; + } + } + public void Reset_ROFstFigures() + { + _ROFstFigureCount = -1; + } + public override bool IsDirty + { + get { return base.IsDirty; } // || (_ROFstAssociations == null ? false : _ROFstAssociations.IsDirty) || (_ROFstFigures == null ? false : _ROFstFigures.IsDirty) || (_MyRODb == null ? false : _MyRODb.IsDirty); } + } + public override bool IsValid + { + get { return (IsNew && !IsDirty ? true : base.IsValid) && (_ROFstAssociations == null ? true : _ROFstAssociations.IsValid) && (_ROFstFigures == null ? true : _ROFstFigures.IsValid) && (_MyRODb == null ? true : _MyRODb.IsValid); } + } + // TODO: Replace base ROFst.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current ROFst + //public override string ToString() + //{ + // return base.ToString(); + //} + // TODO: Check ROFst.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 ROFst + protected override object GetIdValue() + { + return _ROFstID; + } + #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 (_ROFstAssociations != null && (hasBrokenRules = _ROFstAssociations.HasBrokenRules) != null) return hasBrokenRules; + if (_ROFstFigures != null && (hasBrokenRules = _ROFstFigures.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(MyRODbRequired, "MyRODb"); + 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"); + _ROFstExtension.AddValidationRules(ValidationRules); + // TODO: Add other validation rules + } + protected override void AddInstanceBusinessRules() + { + _ROFstExtension.AddInstanceValidationRules(ValidationRules); + // TODO: Add other validation rules + } + private static bool MyRODbRequired(ROFst 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() + { + //TODO: Who can read/write which fields + //AuthorizationRules.AllowRead(ROFstID, ""); + //AuthorizationRules.AllowRead(RODbID, ""); + //AuthorizationRules.AllowRead(ROLookup, ""); + //AuthorizationRules.AllowRead(Config, ""); + //AuthorizationRules.AllowRead(DTS, ""); + //AuthorizationRules.AllowRead(UserID, ""); + //AuthorizationRules.AllowWrite(RODbID, ""); + //AuthorizationRules.AllowWrite(ROLookup, ""); + //AuthorizationRules.AllowWrite(Config, ""); + //AuthorizationRules.AllowWrite(DTS, ""); + //AuthorizationRules.AllowWrite(UserID, ""); + _ROFstExtension.AddAuthorizationRules(AuthorizationRules); + } + protected override void AddInstanceAuthorizationRules() + { + //TODO: Who can read/write which fields + _ROFstExtension.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; + } + /// + /// determines if related records (Foreign Keys) will keep this Item from being deleted + /// + public bool CanDelete + { + get + { + // Check to make sure that there are not any related records + int usedByCount = 0; + usedByCount += _ROFstAssociationCount; + usedByCount += _ROFstFigureCount; + return (usedByCount == 0); + } + } + 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 _ROFstUnique = 0; + protected static int ROFstUnique + { get { return ++_ROFstUnique; } } + private int _MyROFstUnique = ROFstUnique; + public int MyROFstUnique + { get { return _MyROFstUnique; } } + protected ROFst() + {/* require use of factory methods */ + AddToCache(this); + } + public void Dispose() + { + RemoveFromDictionaries(); + } + private void RemoveFromDictionaries() + { + RemoveFromCache(this); + if (_CacheByPrimaryKey.ContainsKey(ROFstID.ToString())) + { + List listROFst = _CacheByPrimaryKey[ROFstID.ToString()]; // Get the list of items + while (listROFst.Contains(this)) listROFst.Remove(this); // Remove the item from the list + if (listROFst.Count == 0) //If there are no items left in the list + _CacheByPrimaryKey.Remove(ROFstID.ToString()); // remove the list + } + string myKey; + myKey = null; + foreach (string key in _CacheByRODbID_DTS.Keys) + if (_CacheByRODbID_DTS[key].Contains(this)) + myKey = key; + if (myKey != null) + { + List listROFst = _CacheByRODbID_DTS[myKey]; // Get the list of items + listROFst.Remove(this); // Remove the item from the list + if (listROFst.Count == 0) //If there are no items left in the list + _CacheByRODbID_DTS.Remove(myKey); // remove the list + } + } + public static ROFst New() + { + if (!CanAddObject()) + throw new System.Security.SecurityException("User not authorized to add a ROFst"); + try + { + return DataPortal.Create(); + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROFst.New", ex); + } + } + public static ROFst New(RODb myRODb, byte[] rOLookup) + { + ROFst tmp = ROFst.New(); + tmp.MyRODb = myRODb; + tmp.ROLookup = rOLookup; + return tmp; + } + public static ROFst New(RODb myRODb, byte[] rOLookup, string config, DateTime dts, string userID) + { + ROFst tmp = ROFst.New(); + tmp.MyRODb = myRODb; + tmp.ROLookup = rOLookup; + tmp.Config = config; + tmp.DTS = dts; + tmp.UserID = userID; + return tmp; + } + public static ROFst MakeROFst(RODb myRODb, byte[] rOLookup, string config, DateTime dts, string userID) + { + ROFst tmp = ROFst.New(myRODb, rOLookup, config, dts, userID); + if (tmp.IsSavable) + { + ROFst 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 ROFst New(RODb myRODb, byte[] rOLookup, string config) + { + ROFst tmp = ROFst.New(); + tmp.MyRODb = myRODb; + tmp.ROLookup = rOLookup; + tmp.Config = config; + return tmp; + } + public static ROFst MakeROFst(RODb myRODb, byte[] rOLookup, string config) + { + ROFst tmp = ROFst.New(myRODb, rOLookup, config); + if (tmp.IsSavable) + { + ROFst 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 ROFst Get(int rOFstID) + { + if (!CanGetObject()) + throw new System.Security.SecurityException("User not authorized to view a ROFst"); + try + { + ROFst tmp = GetCachedByPrimaryKey(rOFstID); + if (tmp == null) + { + tmp = DataPortal.Fetch(new PKCriteria(rOFstID)); + AddToCache(tmp); + } + if (tmp.ErrorMessage == "No Record Found") + { + tmp.Dispose(); // Clean-up ROFst + tmp = null; + } + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROFst.Get", ex); + } + } + public static ROFst GetByRODbID_DTS(int rODbID, DateTime dts) + { + if (!CanGetObject()) + throw new System.Security.SecurityException("User not authorized to view a ROFst"); + try + { + ROFst tmp = GetCachedByRODbID_DTS(rODbID, dts); + if (tmp == null) + { + tmp = DataPortal.Fetch(new RODbID_DTSCriteria(rODbID, dts)); + AddToCache(tmp); + } + if (tmp.ErrorMessage == "No Record Found") + { + tmp.Dispose(); // Clean-up ROFst + tmp = null; + } + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROFst.GetByRODbID_DTS", ex); + } + } + public static ROFst Get(SafeDataReader dr) + { + if (dr.Read()) return new ROFst(dr); + return null; + } + internal ROFst(SafeDataReader dr) + { + ReadData(dr); + } + public static void Delete(int rOFstID) + { + if (!CanDeleteObject()) + throw new System.Security.SecurityException("User not authorized to remove a ROFst"); + try + { + DataPortal.Delete(new PKCriteria(rOFstID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROFst.Delete", ex); + } + } + public override ROFst Save() + { + if (IsDeleted && !CanDeleteObject()) + throw new System.Security.SecurityException("User not authorized to remove a ROFst"); + else if (IsNew && !CanAddObject()) + throw new System.Security.SecurityException("User not authorized to add a ROFst"); + else if (!CanEditObject()) + throw new System.Security.SecurityException("User not authorized to update a ROFst"); + try + { + BuildRefreshList(); + ROFst rOFst = base.Save(); + RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache + AddToCache(rOFst);//Refresh the item in AllList + ProcessRefreshList(); + return rOFst; + } + catch (Exception ex) + { + throw new DbCslaException("Error on CSLA Save", ex); + } + } + #endregion + #region Data Access Portal + [Serializable()] + protected class PKCriteria + { + private int _ROFstID; + public int ROFstID + { get { return _ROFstID; } } + public PKCriteria(int rOFstID) + { + _ROFstID = rOFstID; + } + } + [Serializable()] + private class RODbID_DTSCriteria + { + private int _RODbID; + public int RODbID + { get { return _RODbID; } } + private DateTime _DTS; + public DateTime DTS + { get { return _DTS; } } + public RODbID_DTSCriteria(int rODbID, DateTime dts) + { + _RODbID = rODbID; + _DTS = dts; + } + } + // TODO: If Create needs to access DB - It should not be marked RunLocal + [RunLocal()] + private new void DataPortal_Create() + { + _ROFstID = NextROFstID; + // Database Defaults + _DTS = _ROFstExtension.DefaultDTS; + _UserID = _ROFstExtension.DefaultUserID; + // TODO: Add any defaults that are necessary + ValidationRules.CheckRules(); + } + private void ReadData(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFst.ReadData", GetHashCode()); + try + { + _ROFstID = dr.GetInt32("ROFstID"); + _RODbID = dr.GetInt32("RODbID"); + _ROLookup = (byte[])dr.GetValue("ROLookup"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + _ROFstAssociationCount = dr.GetInt32("AssociationCount"); + _ROFstFigureCount = dr.GetInt32("FigureCount"); + MarkOld(); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFst.ReadData", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROFst.ReadData", ex); + } + } + private void DataPortal_Fetch(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFst.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 = "getROFst"; + cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + if (!dr.Read()) + { + _ErrorMessage = "No Record Found"; + return; + } + ReadData(dr); + // load child objects + dr.NextResult(); + _ROFstAssociations = ROFstAssociations.Get(dr); + // load child objects + dr.NextResult(); + _ROFstFigures = ROFstFigures.Get(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("ROFst.DataPortal_Fetch", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROFst.DataPortal_Fetch", ex); + } + } + private void DataPortal_Fetch(RODbID_DTSCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFst.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 = "getROFstByRODbID_DTS"; + cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); + if (criteria.DTS.Year >= 1753 && criteria.DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", criteria.DTS); + 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("ROFst.DataPortal_Fetch", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROFst.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("ROFst.DataPortal_Insert", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROFst.DataPortal_Insert", ex); + } + finally + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFst.DataPortal_Insert", GetHashCode()); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + internal void SQLInsert() + { + if (!this.IsDirty) return; + try + { + if (_MyRODb != null) _MyRODb.Update(); + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "addROFst"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@RODbID", RODbID); + cm.Parameters.AddWithValue("@ROLookup", _ROLookup); + 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_ROFstID = new SqlParameter("@newROFstID", SqlDbType.Int); + param_ROFstID.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_ROFstID); + 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 + _ROFstID = (int)cm.Parameters["@newROFstID"].Value; + _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; + } + MarkOld(); + // update child objects + if (_ROFstAssociations != null) _ROFstAssociations.Update(this); + if (_ROFstFigures != null) _ROFstFigures.Update(this); + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFst.SQLInsert", GetHashCode()); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFst.SQLInsert", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROFst.SQLInsert", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static byte[] Add(SqlConnection cn, ref int rOFstID, RODb myRODb, byte[] rOLookup, string config, DateTime dts, string userID) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFst.Add", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "addROFst"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@RODbID", myRODb.RODbID); + cm.Parameters.AddWithValue("@ROLookup", rOLookup); + 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_ROFstID = new SqlParameter("@newROFstID", SqlDbType.Int); + param_ROFstID.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_ROFstID); + 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 + rOFstID = (int)cm.Parameters["@newROFstID"].Value; + return (byte[])cm.Parameters["@newLastChanged"].Value; + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFst.Add", ex); + throw new DbCslaException("ROFst.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}] ROFst.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("ROFst.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}] ROFst.SQLUpdate", GetHashCode()); + try + { + 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 = "updateROFst"; + // All Fields including Calculated Fields + cm.Parameters.AddWithValue("@ROFstID", _ROFstID); + cm.Parameters.AddWithValue("@RODbID", RODbID); + cm.Parameters.AddWithValue("@ROLookup", _ROLookup); + 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 + if (_ROFstAssociations != null) _ROFstAssociations.Update(this); + if (_ROFstFigures != null) _ROFstFigures.Update(this); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFst.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 = ROFst.Add(cn, ref _ROFstID, _MyRODb, _ROLookup, _Config, _DTS, _UserID); + else + _LastChanged = ROFst.Update(cn, ref _ROFstID, _MyRODb, _ROLookup, _Config, _DTS, _UserID, ref _LastChanged); + MarkOld(); + } + if (_ROFstAssociations != null) _ROFstAssociations.Update(this); + if (_ROFstFigures != null) _ROFstFigures.Update(this); + } + [Transactional(TransactionalTypes.TransactionScope)] + public static byte[] Update(SqlConnection cn, ref int rOFstID, RODb myRODb, byte[] rOLookup, string config, DateTime dts, string userID, ref byte[] lastChanged) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFst.Update", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "updateROFst"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@ROFstID", rOFstID); + cm.Parameters.AddWithValue("@RODbID", myRODb.RODbID); + cm.Parameters.AddWithValue("@ROLookup", rOLookup); + 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("ROFst.Update", ex); + throw new DbCslaException("ROFst.Update", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + protected override void DataPortal_DeleteSelf() + { + DataPortal_Delete(new PKCriteria(_ROFstID)); + } + [Transactional(TransactionalTypes.TransactionScope)] + private void DataPortal_Delete(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFst.DataPortal_Delete", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "deleteROFst"; + cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); + cm.ExecuteNonQuery(); + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFst.DataPortal_Delete", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROFst.DataPortal_Delete", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static void Remove(SqlConnection cn, int rOFstID) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFst.Remove", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "deleteROFst"; + // Input PK Fields + cm.Parameters.AddWithValue("@ROFstID", rOFstID); + // TODO: Define any additional output parameters + cm.ExecuteNonQuery(); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFst.Remove", ex); + throw new DbCslaException("ROFst.Remove", ex); + } + } + #endregion + #region Exists + public static bool Exists(int rOFstID) + { + ExistsCommand result; + try + { + result = DataPortal.Execute(new ExistsCommand(rOFstID)); + return result.Exists; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROFst.Exists", ex); + } + } + [Serializable()] + private class ExistsCommand : CommandBase + { + private int _ROFstID; + private bool _exists; + public bool Exists + { + get { return _exists; } + } + public ExistsCommand(int rOFstID) + { + _ROFstID = rOFstID; + } + protected override void DataPortal_Execute() + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFst.DataPortal_Execute", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + cn.Open(); + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "existsROFst"; + cm.Parameters.AddWithValue("@ROFstID", _ROFstID); + int count = (int)cm.ExecuteScalar(); + _exists = (count > 0); + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFst.DataPortal_Execute", ex); + throw new DbCslaException("ROFst.DataPortal_Execute", ex); + } + } + } + #endregion + // Standard Default Code + #region extension + ROFstExtension _ROFstExtension = new ROFstExtension(); + [Serializable()] + partial class ROFstExtension : 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 ROFstConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is ROFst) + { + // Return the ToString value + return ((ROFst)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create ROFstExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class ROFst +// { +// partial class ROFstExtension : 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/ROFstAssociation.cs b/PROMS/VEPROMS.CSLA.Library/Generated/ROFstAssociation.cs new file mode 100644 index 00000000..af4b61a5 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/ROFstAssociation.cs @@ -0,0 +1,573 @@ +// ======================================================================== +// 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 Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// ROFstAssociation Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(ROFstAssociationConverter))] + public partial class ROFstAssociation : 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 _AssociationID; + [System.ComponentModel.DataObjectField(true, true)] + public int AssociationID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("AssociationID", true); + if (_MyAssociation != null) _AssociationID = _MyAssociation.AssociationID; + return _AssociationID; + } + } + private Association _MyAssociation; + [System.ComponentModel.DataObjectField(true, true)] + public Association MyAssociation + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyAssociation", true); + if (_MyAssociation == null && _AssociationID != 0) _MyAssociation = Association.Get(_AssociationID); + return _MyAssociation; + } + } + 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 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 _DocVersion_FolderID; + public int DocVersion_FolderID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DocVersion_FolderID", true); + return _DocVersion_FolderID; + } + } + private int _DocVersion_VersionType; + /// + /// 0 Working Draft, 1 Temporary, 128 Revision, 129 Approved (Greater than 127 - non editable) + /// + public int DocVersion_VersionType + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DocVersion_VersionType", true); + return _DocVersion_VersionType; + } + } + private string _DocVersion_Name = string.Empty; + public string DocVersion_Name + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DocVersion_Name", true); + return _DocVersion_Name; + } + } + private string _DocVersion_Title = string.Empty; + public string DocVersion_Title + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DocVersion_Title", true); + return _DocVersion_Title; + } + } + private int? _DocVersion_ItemID; + public int? DocVersion_ItemID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DocVersion_ItemID", true); + return _DocVersion_ItemID; + } + } + private int? _DocVersion_FormatID; + public int? DocVersion_FormatID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DocVersion_FormatID", true); + return _DocVersion_FormatID; + } + } + private string _DocVersion_Config = string.Empty; + public string DocVersion_Config + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DocVersion_Config", true); + return _DocVersion_Config; + } + } + private DateTime _DocVersion_DTS = new DateTime(); + public DateTime DocVersion_DTS + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DocVersion_DTS", true); + return _DocVersion_DTS; + } + } + private string _DocVersion_UserID = string.Empty; + public string DocVersion_UserID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("DocVersion_UserID", true); + return _DocVersion_UserID; + } + } + // TODO: Check ROFstAssociation.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 ROFstAssociation + protected override object GetIdValue() + { + return _AssociationID; + } + // TODO: Replace base ROFstAssociation.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current ROFstAssociation + //public override string ToString() + //{ + // return base.ToString(); + //} + public override bool IsDirty + { + get { return base.IsDirty || (_MyDocVersion == null ? false : _MyDocVersion.IsDirty); } + } + public override bool IsValid + { + get { return true;} // (IsNew && !IsDirty ? true : base.IsValid) && (_MyDocVersion == null ? true : _MyDocVersion.IsValid); } + } + #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 (_MyDocVersion != null && (hasBrokenRules = _MyDocVersion.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( + 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)); + // TODO: Add other validation rules + } + private static bool MyDocVersionRequired(ROFstAssociation target, Csla.Validation.RuleArgs e) + { + if (target._VersionID == 0 && target._MyDocVersion == 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.AllowWrite(VersionID, ""); + //AuthorizationRules.AllowRead(Config, ""); + //AuthorizationRules.AllowWrite(Config, ""); + //AuthorizationRules.AllowRead(DTS, ""); + //AuthorizationRules.AllowWrite(DTS, ""); + //AuthorizationRules.AllowRead(UserID, ""); + //AuthorizationRules.AllowWrite(UserID, ""); + } + 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; } } + internal static ROFstAssociation New(DocVersion myDocVersion) + { + return new ROFstAssociation(myDocVersion); + } + internal static ROFstAssociation Get(SafeDataReader dr) + { + return new ROFstAssociation(dr); + } + public ROFstAssociation() + { + MarkAsChild(); + _AssociationID = Association.NextAssociationID; + _DTS = _ROFstAssociationExtension.DefaultDTS; + _UserID = _ROFstAssociationExtension.DefaultUserID; + ValidationRules.CheckRules(); + } + private ROFstAssociation(DocVersion myDocVersion) + { + MarkAsChild(); + // TODO: Add any initialization & defaults + _DTS = _ROFstAssociationExtension.DefaultDTS; + _UserID = _ROFstAssociationExtension.DefaultUserID; + _MyDocVersion = myDocVersion; + ValidationRules.CheckRules(); + } + internal ROFstAssociation(SafeDataReader dr) + { + MarkAsChild(); + Fetch(dr); + } + #endregion + #region Data Access Portal + private void Fetch(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstAssociation.FetchDR", GetHashCode()); + try + { + _AssociationID = dr.GetInt32("AssociationID"); + _VersionID = dr.GetInt32("VersionID"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + _DocVersion_FolderID = dr.GetInt32("DocVersion_FolderID"); + _DocVersion_VersionType = dr.GetInt32("DocVersion_VersionType"); + _DocVersion_Name = dr.GetString("DocVersion_Name"); + _DocVersion_Title = dr.GetString("DocVersion_Title"); + _DocVersion_ItemID = (int?)dr.GetValue("DocVersion_ItemID"); + _DocVersion_FormatID = (int?)dr.GetValue("DocVersion_FormatID"); + _DocVersion_Config = dr.GetString("DocVersion_Config"); + _DocVersion_DTS = dr.GetDateTime("DocVersion_DTS"); + _DocVersion_UserID = dr.GetString("DocVersion_UserID"); + } + catch (Exception ex) // FKItem Fetch + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstAssociation.FetchDR", ex); + throw new DbCslaException("ROFstAssociation.Fetch", ex); + } + MarkOld(); + } + internal void Insert(ROFst myROFst) + { + // if we're not dirty then don't update the database + if (!this.IsDirty) return; + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + _LastChanged = Association.Add(cn, ref _AssociationID, _MyDocVersion, myROFst, _Config, _DTS, _UserID); + MarkOld(); + } + internal void Update(ROFst myROFst) + { + // if we're not dirty then don't update the database + if (!this.IsDirty) return; + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + _LastChanged = Association.Update(cn, ref _AssociationID, _MyDocVersion, myROFst, _Config, _DTS, _UserID, ref _LastChanged); + MarkOld(); + } + internal void DeleteSelf(ROFst myROFst) + { + // 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"]; + Association.Remove(cn, _AssociationID); + MarkNew(); + } + #endregion + // Standard Default Code + #region extension + ROFstAssociationExtension _ROFstAssociationExtension = new ROFstAssociationExtension(); + [Serializable()] + partial class ROFstAssociationExtension : 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 ROFstAssociationConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is ROFstAssociation) + { + // Return the ToString value + return ((ROFstAssociation)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create ROFstAssociationExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class ROFstAssociation +// { +// partial class ROFstAssociationExtension : 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/ROFstAssociations.cs b/PROMS/VEPROMS.CSLA.Library/Generated/ROFstAssociations.cs new file mode 100644 index 00000000..099b0032 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/ROFstAssociations.cs @@ -0,0 +1,309 @@ +// ======================================================================== +// 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 Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// ROFstAssociations Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(ROFstAssociationsConverter))] + public partial class ROFstAssociations : 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 ROFstAssociation this[Association myAssociation] + { + get + { + foreach (ROFstAssociation association in this) + if (association.AssociationID == myAssociation.AssociationID) + return association; + return null; + } + } + public new System.Collections.Generic.IList Items + { + get { return base.Items; } + } + public ROFstAssociation GetItem(Association myAssociation) + { + foreach (ROFstAssociation association in this) + if (association.AssociationID == myAssociation.AssociationID) + return association; + return null; + } + public ROFstAssociation Add(DocVersion myDocVersion) // One to Many with unique fields + { + if (!Contains(myDocVersion)) + { + ROFstAssociation association = ROFstAssociation.New(myDocVersion); + this.Add(association); + return association; + } + else + throw new InvalidOperationException("association already exists"); + } + public void Remove(Association myAssociation) + { + foreach (ROFstAssociation association in this) + { + if (association.AssociationID == myAssociation.AssociationID) + { + Remove(association); + break; + } + } + } + public bool Contains(Association myAssociation) + { + foreach (ROFstAssociation association in this) + if (association.AssociationID == myAssociation.AssociationID) + return true; + return false; + } + public bool ContainsDeleted(Association myAssociation) + { + foreach (ROFstAssociation association in DeletedList) + if (association.AssociationID == myAssociation.AssociationID) + return true; + return false; + } + public bool Contains(DocVersion myDocVersion) + { + foreach (ROFstAssociation association in this) + if (association.VersionID == myDocVersion.VersionID) + return true; + return false; + } + public bool ContainsDeleted(DocVersion myDocVersion) + { + foreach (ROFstAssociation association in DeletedList) + if (association.VersionID == myDocVersion.VersionID) + return true; + return false; + } + #endregion + #region ValidationRules + public IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + foreach (ROFstAssociation rOFstAssociation in this) + if ((hasBrokenRules = rOFstAssociation.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 ROFstAssociations New() + { + return new ROFstAssociations(); + } + internal static ROFstAssociations Get(SafeDataReader dr) + { + return new ROFstAssociations(dr); + } + public static ROFstAssociations GetByROFstID(int rOFstID) + { + try + { + return DataPortal.Fetch(new ROFstIDCriteria(rOFstID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROFstAssociations.GetByROFstID", ex); + } + } + private ROFstAssociations() + { + MarkAsChild(); + } + internal ROFstAssociations(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(ROFstAssociation.Get(dr)); + 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}] ROFstAssociations.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())) + { + while (dr.Read()) this.Add(new ROFstAssociation(dr)); + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstAssociations.DataPortal_FetchROFstID", ex); + throw new DbCslaException("ROFstAssociations.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } + internal void Update(ROFst rOFst) + { + this.RaiseListChangedEvents = false; + try + { + // update (thus deleting) any deleted child objects + foreach (ROFstAssociation obj in DeletedList) + obj.DeleteSelf(rOFst);// Deletes related record + // now that they are deleted, remove them from memory too + DeletedList.Clear(); + // add/update any current child objects + foreach (ROFstAssociation obj in this) + { + if (obj.IsNew) + obj.Insert(rOFst); + else + obj.Update(rOFst); + } + } + 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 + ROFstAssociationsPropertyDescriptor pd = new ROFstAssociationsPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class ROFstAssociationsPropertyDescriptor : vlnListPropertyDescriptor + { + private ROFstAssociation Item { get { return (ROFstAssociation)_Item; } } + public ROFstAssociationsPropertyDescriptor(ROFstAssociations collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class ROFstAssociationsConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is ROFstAssociations) + { + // Return department and department role separated by comma. + return ((ROFstAssociations)value).Items.Count.ToString() + " Associations"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/ROFstFigure.cs b/PROMS/VEPROMS.CSLA.Library/Generated/ROFstFigure.cs new file mode 100644 index 00000000..0216e86b --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/ROFstFigure.cs @@ -0,0 +1,537 @@ +// ======================================================================== +// 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 Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// ROFstFigure Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(ROFstFigureConverter))] + public partial class ROFstFigure : 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 _FigureID; + [System.ComponentModel.DataObjectField(true, true)] + public int FigureID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("FigureID", true); + if (_MyFigure != null) _FigureID = _MyFigure.FigureID; + return _FigureID; + } + } + private Figure _MyFigure; + [System.ComponentModel.DataObjectField(true, true)] + public Figure MyFigure + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyFigure", true); + if (_MyFigure == null && _FigureID != 0) _MyFigure = Figure.Get(_FigureID); + return _MyFigure; + } + } + private int _ImageID; + public int ImageID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ImageID", true); + if (_MyROImage != null) _ImageID = _MyROImage.ImageID; + return _ImageID; + } + } + private ROImage _MyROImage; + public ROImage MyROImage + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyROImage", true); + if (_MyROImage == null && _ImageID != 0) _MyROImage = ROImage.Get(_ImageID); + return _MyROImage; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("MyROImage", true); + if (_MyROImage != value) + { + _MyROImage = 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 _ROImage_RODbID; + public int ROImage_RODbID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROImage_RODbID", true); + return _ROImage_RODbID; + } + } + private string _ROImage_FileName = string.Empty; + public string ROImage_FileName + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROImage_FileName", true); + return _ROImage_FileName; + } + } + private byte[] _ROImage_Content; + public byte[] ROImage_Content + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROImage_Content", true); + return _ROImage_Content; + } + } + private string _ROImage_Config = string.Empty; + public string ROImage_Config + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROImage_Config", true); + return _ROImage_Config; + } + } + private DateTime _ROImage_DTS = new DateTime(); + public DateTime ROImage_DTS + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROImage_DTS", true); + return _ROImage_DTS; + } + } + private string _ROImage_UserID = string.Empty; + public string ROImage_UserID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROImage_UserID", true); + return _ROImage_UserID; + } + } + // TODO: Check ROFstFigure.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 ROFstFigure + protected override object GetIdValue() + { + return _FigureID; + } + // TODO: Replace base ROFstFigure.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current ROFstFigure + //public override string ToString() + //{ + // return base.ToString(); + //} + public override bool IsDirty + { + get { return base.IsDirty || (_MyROImage == null ? false : _MyROImage.IsDirty); } + } + public override bool IsValid + { + get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyROImage == null ? true : _MyROImage.IsValid); } + } + #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 (_MyROImage != null && (hasBrokenRules = _MyROImage.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(MyROImageRequired, "MyROImage"); + 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)); + // TODO: Add other validation rules + } + private static bool MyROImageRequired(ROFstFigure target, Csla.Validation.RuleArgs e) + { + if (target._ImageID == 0 && target._MyROImage == 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(FigureID, ""); + //AuthorizationRules.AllowRead(ImageID, ""); + //AuthorizationRules.AllowWrite(ImageID, ""); + //AuthorizationRules.AllowRead(Config, ""); + //AuthorizationRules.AllowWrite(Config, ""); + //AuthorizationRules.AllowRead(DTS, ""); + //AuthorizationRules.AllowWrite(DTS, ""); + //AuthorizationRules.AllowRead(UserID, ""); + //AuthorizationRules.AllowWrite(UserID, ""); + } + 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; } } + internal static ROFstFigure New(ROImage myROImage) + { + return new ROFstFigure(myROImage); + } + internal static ROFstFigure Get(SafeDataReader dr) + { + return new ROFstFigure(dr); + } + public ROFstFigure() + { + MarkAsChild(); + _FigureID = Figure.NextFigureID; + _DTS = _ROFstFigureExtension.DefaultDTS; + _UserID = _ROFstFigureExtension.DefaultUserID; + ValidationRules.CheckRules(); + } + private ROFstFigure(ROImage myROImage) + { + MarkAsChild(); + // TODO: Add any initialization & defaults + _DTS = _ROFstFigureExtension.DefaultDTS; + _UserID = _ROFstFigureExtension.DefaultUserID; + _MyROImage = myROImage; + ValidationRules.CheckRules(); + } + internal ROFstFigure(SafeDataReader dr) + { + MarkAsChild(); + Fetch(dr); + } + #endregion + #region Data Access Portal + private void Fetch(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstFigure.FetchDR", GetHashCode()); + try + { + _FigureID = dr.GetInt32("FigureID"); + _ImageID = dr.GetInt32("ImageID"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + _ROImage_RODbID = dr.GetInt32("ROImage_RODbID"); + _ROImage_FileName = dr.GetString("ROImage_FileName"); + _ROImage_Content = (byte[])dr.GetValue("ROImage_Content"); + _ROImage_Config = dr.GetString("ROImage_Config"); + _ROImage_DTS = dr.GetDateTime("ROImage_DTS"); + _ROImage_UserID = dr.GetString("ROImage_UserID"); + } + catch (Exception ex) // FKItem Fetch + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstFigure.FetchDR", ex); + throw new DbCslaException("ROFstFigure.Fetch", ex); + } + MarkOld(); + } + internal void Insert(ROFst myROFst) + { + // if we're not dirty then don't update the database + if (!this.IsDirty) return; + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + _LastChanged = Figure.Add(cn, ref _FigureID, myROFst, _MyROImage, _Config, _DTS, _UserID); + MarkOld(); + } + internal void Update(ROFst myROFst) + { + // if we're not dirty then don't update the database + if (!this.IsDirty) return; + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + _LastChanged = Figure.Update(cn, ref _FigureID, myROFst, _MyROImage, _Config, _DTS, _UserID, ref _LastChanged); + MarkOld(); + } + internal void DeleteSelf(ROFst myROFst) + { + // 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"]; + Figure.Remove(cn, _FigureID); + MarkNew(); + } + #endregion + // Standard Default Code + #region extension + ROFstFigureExtension _ROFstFigureExtension = new ROFstFigureExtension(); + [Serializable()] + partial class ROFstFigureExtension : 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 ROFstFigureConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is ROFstFigure) + { + // Return the ToString value + return ((ROFstFigure)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create ROFstFigureExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class ROFstFigure +// { +// partial class ROFstFigureExtension : 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/ROFstFigures.cs b/PROMS/VEPROMS.CSLA.Library/Generated/ROFstFigures.cs new file mode 100644 index 00000000..f8b685db --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/ROFstFigures.cs @@ -0,0 +1,309 @@ +// ======================================================================== +// 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 Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// ROFstFigures Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(ROFstFiguresConverter))] + public partial class ROFstFigures : 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 ROFstFigure this[Figure myFigure] + { + get + { + foreach (ROFstFigure figure in this) + if (figure.FigureID == myFigure.FigureID) + return figure; + return null; + } + } + public new System.Collections.Generic.IList Items + { + get { return base.Items; } + } + public ROFstFigure GetItem(Figure myFigure) + { + foreach (ROFstFigure figure in this) + if (figure.FigureID == myFigure.FigureID) + return figure; + return null; + } + public ROFstFigure Add(ROImage myROImage) // One to Many with unique fields + { + if (!Contains(myROImage)) + { + ROFstFigure figure = ROFstFigure.New(myROImage); + this.Add(figure); + return figure; + } + else + throw new InvalidOperationException("figure already exists"); + } + public void Remove(Figure myFigure) + { + foreach (ROFstFigure figure in this) + { + if (figure.FigureID == myFigure.FigureID) + { + Remove(figure); + break; + } + } + } + public bool Contains(Figure myFigure) + { + foreach (ROFstFigure figure in this) + if (figure.FigureID == myFigure.FigureID) + return true; + return false; + } + public bool ContainsDeleted(Figure myFigure) + { + foreach (ROFstFigure figure in DeletedList) + if (figure.FigureID == myFigure.FigureID) + return true; + return false; + } + public bool Contains(ROImage myROImage) + { + foreach (ROFstFigure figure in this) + if (figure.ImageID == myROImage.ImageID) + return true; + return false; + } + public bool ContainsDeleted(ROImage myROImage) + { + foreach (ROFstFigure figure in DeletedList) + if (figure.ImageID == myROImage.ImageID) + return true; + return false; + } + #endregion + #region ValidationRules + public IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + foreach (ROFstFigure rOFstFigure in this) + if ((hasBrokenRules = rOFstFigure.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 ROFstFigures New() + { + return new ROFstFigures(); + } + internal static ROFstFigures Get(SafeDataReader dr) + { + return new ROFstFigures(dr); + } + public static ROFstFigures GetByROFstID(int rOFstID) + { + try + { + return DataPortal.Fetch(new ROFstIDCriteria(rOFstID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROFstFigures.GetByROFstID", ex); + } + } + private ROFstFigures() + { + MarkAsChild(); + } + internal ROFstFigures(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(ROFstFigure.Get(dr)); + 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}] ROFstFigures.DataPortal_FetchROFstID", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getFiguresByROFstID"; + cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + while (dr.Read()) this.Add(new ROFstFigure(dr)); + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstFigures.DataPortal_FetchROFstID", ex); + throw new DbCslaException("ROFstFigures.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } + internal void Update(ROFst rOFst) + { + this.RaiseListChangedEvents = false; + try + { + // update (thus deleting) any deleted child objects + foreach (ROFstFigure obj in DeletedList) + obj.DeleteSelf(rOFst);// Deletes related record + // now that they are deleted, remove them from memory too + DeletedList.Clear(); + // add/update any current child objects + foreach (ROFstFigure obj in this) + { + if (obj.IsNew) + obj.Insert(rOFst); + else + obj.Update(rOFst); + } + } + 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 + ROFstFiguresPropertyDescriptor pd = new ROFstFiguresPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class ROFstFiguresPropertyDescriptor : vlnListPropertyDescriptor + { + private ROFstFigure Item { get { return (ROFstFigure)_Item; } } + public ROFstFiguresPropertyDescriptor(ROFstFigures collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class ROFstFiguresConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is ROFstFigures) + { + // Return department and department role separated by comma. + return ((ROFstFigures)value).Items.Count.ToString() + " Figures"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/ROFstInfo.cs b/PROMS/VEPROMS.CSLA.Library/Generated/ROFstInfo.cs new file mode 100644 index 00000000..3e9d2b59 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/ROFstInfo.cs @@ -0,0 +1,464 @@ +// ======================================================================== +// 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 ROFstInfoEvent(object sender); + /// + /// ROFstInfo Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(ROFstInfoConverter))] + public partial class ROFstInfo : ReadOnlyBase, IDisposable + { + public event ROFstInfoEvent 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(ROFstInfo rOFstInfo) + { + if (!_CacheList.Contains(rOFstInfo)) _CacheList.Add(rOFstInfo); // In AddToCache + } + protected static void RemoveFromCache(ROFstInfo rOFstInfo) + { + while (_CacheList.Contains(rOFstInfo)) _CacheList.Remove(rOFstInfo); // In RemoveFromCache + } + private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); + private static void ConvertListToDictionary() + { + List remove = new List(); + foreach (ROFstInfo tmp in _CacheList) + { + if (!_CacheByPrimaryKey.ContainsKey(tmp.ROFstID.ToString())) + { + _CacheByPrimaryKey[tmp.ROFstID.ToString()] = new List(); // Add new list for PrimaryKey + } + _CacheByPrimaryKey[tmp.ROFstID.ToString()].Add(tmp); // Add to Primary Key list + remove.Add(tmp); + } + foreach (ROFstInfo tmp in remove) + RemoveFromCache(tmp); + } + internal static void AddList(ROFstInfoList lst) + { + foreach (ROFstInfo item in lst) AddToCache(item); + } + protected static ROFstInfo GetCachedByPrimaryKey(int rOFstID) + { + ConvertListToDictionary(); + string key = rOFstID.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 ROFst _Editable; + private IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + if (_Editable != null) + hasBrokenRules = _Editable.HasBrokenRules; + return hasBrokenRules; + } + } + private int _ROFstID; + [System.ComponentModel.DataObjectField(true, true)] + public int ROFstID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFstID", true); + return _ROFstID; + } + } + 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; + } + } + private byte[] _ROLookup; + public byte[] ROLookup + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROLookup", true); + return _ROLookup; + } + } + 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 _ROFstAssociationCount = 0; + /// + /// Count of ROFstAssociations for this ROFst + /// + public int ROFstAssociationCount + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFstAssociationCount", true); + return _ROFstAssociationCount; + } + } + private AssociationInfoList _ROFstAssociations = null; + [TypeConverter(typeof(AssociationInfoListConverter))] + public AssociationInfoList ROFstAssociations + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFstAssociations", true); + if (_ROFstAssociationCount < 0 || (_ROFstAssociationCount > 0 && _ROFstAssociations == null)) + _ROFstAssociations = AssociationInfoList.GetByROFstID(_ROFstID); + if (_ROFstAssociationCount < 0) + _ROFstAssociationCount = _ROFstAssociations.Count; + return _ROFstAssociations; + } + } + public void RefreshROFstAssociations() + { + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(_ROFstID.ToString())) + foreach (ROFstInfo tmp in _CacheByPrimaryKey[_ROFstID.ToString()]) + tmp._ROFstAssociationCount = -1; // This will cause the data to be requeried + } + private int _ROFstFigureCount = 0; + /// + /// Count of ROFstFigures for this ROFst + /// + public int ROFstFigureCount + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFstFigureCount", true); + return _ROFstFigureCount; + } + } + private FigureInfoList _ROFstFigures = null; + [TypeConverter(typeof(FigureInfoListConverter))] + public FigureInfoList ROFstFigures + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFstFigures", true); + if (_ROFstFigureCount < 0 || (_ROFstFigureCount > 0 && _ROFstFigures == null)) + _ROFstFigures = FigureInfoList.GetByROFstID(_ROFstID); + if (_ROFstFigureCount < 0) + _ROFstFigureCount = _ROFstFigures.Count; + return _ROFstFigures; + } + } + public void RefreshROFstFigures() + { + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(_ROFstID.ToString())) + foreach (ROFstInfo tmp in _CacheByPrimaryKey[_ROFstID.ToString()]) + tmp._ROFstFigureCount = -1; // This will cause the data to be requeried + } + // TODO: Replace base ROFstInfo.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current ROFstInfo + //public override string ToString() + //{ + // return base.ToString(); + //} + // TODO: Check ROFstInfo.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 ROFstInfo + protected override object GetIdValue() + { + return _ROFstID; + } + #endregion + #region Factory Methods + private static int _ROFstInfoUnique = 0; + private static int ROFstInfoUnique + { get { return ++_ROFstInfoUnique; } } + private int _MyROFstInfoUnique = ROFstInfoUnique; + public int MyROFstInfoUnique + { get { return _MyROFstInfoUnique; } } + protected ROFstInfo() + {/* require use of factory methods */ + AddToCache(this); + } + public void Dispose() + { + RemoveFromCache(this); + if (!_CacheByPrimaryKey.ContainsKey(ROFstID.ToString())) return; + List listROFstInfo = _CacheByPrimaryKey[ROFstID.ToString()]; // Get the list of items + while (listROFstInfo.Contains(this)) listROFstInfo.Remove(this); // Remove the item from the list + if (listROFstInfo.Count == 0) // If there are no items left in the list + _CacheByPrimaryKey.Remove(ROFstID.ToString()); // remove the list + } + public virtual ROFst Get() + { + return _Editable = ROFst.Get(_ROFstID); + } + public static void Refresh(ROFst tmp) + { + string key = tmp.ROFstID.ToString(); + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(key)) + foreach (ROFstInfo tmpInfo in _CacheByPrimaryKey[key]) + tmpInfo.RefreshFields(tmp); + } + protected virtual void RefreshFields(ROFst tmp) + { + if (_RODbID != tmp.RODbID) + { + if (MyRODb != null) MyRODb.RefreshRODbROFsts(); // 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.RefreshRODbROFsts(); // Update List for new value + _ROLookup = tmp.ROLookup; + _Config = tmp.Config; + _DTS = tmp.DTS; + _UserID = tmp.UserID; + _ROFstInfoExtension.Refresh(this); + if(_MyRODb != null) + { + _MyRODb.Dispose();// Dispose related value + _MyRODb = null;// Reset related value + } + OnChange();// raise an event + } + public static void Refresh(RODbROFst tmp) + { + string key = tmp.ROFstID.ToString(); + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(key)) + foreach (ROFstInfo tmpInfo in _CacheByPrimaryKey[key]) + tmpInfo.RefreshFields(tmp); + } + protected virtual void RefreshFields(RODbROFst tmp) + { + _ROLookup = tmp.ROLookup; + _Config = tmp.Config; + _DTS = tmp.DTS; + _UserID = tmp.UserID; + _ROFstInfoExtension.Refresh(this); + if(_MyRODb != null) + { + _MyRODb.Dispose();// Dispose related value + _MyRODb = null;// Reset related value + } + OnChange();// raise an event + } + public static ROFstInfo Get(int rOFstID) + { + //if (!CanGetObject()) + // throw new System.Security.SecurityException("User not authorized to view a ROFst"); + try + { + ROFstInfo tmp = GetCachedByPrimaryKey(rOFstID); + if (tmp == null) + { + tmp = DataPortal.Fetch(new PKCriteria(rOFstID)); + AddToCache(tmp); + } + if (tmp.ErrorMessage == "No Record Found") + { + tmp.Dispose(); // Clean-up ROFstInfo + tmp = null; + } + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROFstInfo.Get", ex); + } + } + #endregion + #region Data Access Portal + internal ROFstInfo(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstInfo.Constructor", GetHashCode()); + try + { + ReadData(dr); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstInfo.Constructor", ex); + throw new DbCslaException("ROFstInfo.Constructor", ex); + } + } + [Serializable()] + protected class PKCriteria + { + private int _ROFstID; + public int ROFstID + { get { return _ROFstID; } } + public PKCriteria(int rOFstID) + { + _ROFstID = rOFstID; + } + } + private void ReadData(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstInfo.ReadData", GetHashCode()); + try + { + _ROFstID = dr.GetInt32("ROFstID"); + _RODbID = dr.GetInt32("RODbID"); + _ROLookup = (byte[])dr.GetValue("ROLookup"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + _ROFstAssociationCount = dr.GetInt32("AssociationCount"); + _ROFstFigureCount = dr.GetInt32("FigureCount"); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstInfo.ReadData", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROFstInfo.ReadData", ex); + } + } + private void DataPortal_Fetch(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstInfo.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 = "getROFst"; + 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("ROFstInfo.DataPortal_Fetch", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROFstInfo.DataPortal_Fetch", ex); + } + } + #endregion + // Standard Refresh + #region extension + ROFstInfoExtension _ROFstInfoExtension = new ROFstInfoExtension(); + [Serializable()] + partial class ROFstInfoExtension : extensionBase { } + [Serializable()] + class extensionBase + { + // Default Refresh + public virtual void Refresh(ROFstInfo tmp) { } + } + #endregion + } // Class + #region Converter + internal class ROFstInfoConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is ROFstInfo) + { + // Return the ToString value + return ((ROFstInfo)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/ROFstInfoList.cs b/PROMS/VEPROMS.CSLA.Library/Generated/ROFstInfoList.cs new file mode 100644 index 00000000..ec83317e --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/ROFstInfoList.cs @@ -0,0 +1,262 @@ +// ======================================================================== +// 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 +{ + /// + /// ROFstInfoList Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(ROFstInfoListConverter))] + public partial class ROFstInfoList : 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 (ROFstInfo tmp in this) + { + tmp.Changed += new ROFstInfoEvent(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 (ROFstInfo tmp in this) + { + tmp.Changed -= new ROFstInfoEvent(tmp_Changed); + } + } + #endregion + #region Factory Methods + public static ROFstInfoList _ROFstInfoList = null; + /// + /// Return a list of all ROFstInfo. + /// + public static ROFstInfoList Get() + { + try + { + if (_ROFstInfoList != null) + return _ROFstInfoList; + ROFstInfoList tmp = DataPortal.Fetch(); + ROFstInfo.AddList(tmp); + tmp.AddEvents(); + _ROFstInfoList = tmp; + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROFstInfoList.Get", ex); + } + } + /// + /// Reset the list of all ROFstInfo. + /// + public static void Reset() + { + _ROFstInfoList = null; + } + // TODO: Add alternative gets - + //public static ROFstInfoList Get() + //{ + // try + // { + // return DataPortal.Fetch(new FilteredCriteria()); + // } + // catch (Exception ex) + // { + // throw new DbCslaException("Error on ROFstInfoList.Get", ex); + // } + //} + public static ROFstInfoList GetByRODbID(int rODbID) + { + try + { + ROFstInfoList tmp = DataPortal.Fetch(new RODbIDCriteria(rODbID)); + ROFstInfo.AddList(tmp); + tmp.AddEvents(); + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROFstInfoList.GetByRODbID", ex); + } + } + private ROFstInfoList() + { /* require use of factory methods */ } + #endregion + #region Data Access Portal + private void DataPortal_Fetch() + { + this.RaiseListChangedEvents = false; + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstInfoList.DataPortal_Fetch", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getROFsts"; + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + IsReadOnly = false; + while (dr.Read()) this.Add(new ROFstInfo(dr)); + IsReadOnly = true; + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstInfoList.DataPortal_Fetch", ex); + throw new DbCslaException("ROFstInfoList.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}] ROFstInfoList.DataPortal_FetchRODbID", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getROFstsByRODbID"; + cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + IsReadOnly = false; + while (dr.Read()) this.Add(new ROFstInfo(dr)); + IsReadOnly = true; + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstInfoList.DataPortal_FetchRODbID", ex); + throw new DbCslaException("ROFstInfoList.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 + ROFstInfoListPropertyDescriptor pd = new ROFstInfoListPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class ROFstInfoListPropertyDescriptor : vlnListPropertyDescriptor + { + private ROFstInfo Item { get { return (ROFstInfo)_Item; } } + public ROFstInfoListPropertyDescriptor(ROFstInfoList collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class ROFstInfoListConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is ROFstInfoList) + { + // Return department and department role separated by comma. + return ((ROFstInfoList)value).Items.Count.ToString() + " ROFsts"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/ROImage.cs b/PROMS/VEPROMS.CSLA.Library/Generated/ROImage.cs new file mode 100644 index 00000000..3237f22f --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/ROImage.cs @@ -0,0 +1,1257 @@ +// ======================================================================== +// 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 +{ + /// + /// ROImage Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(ROImageConverter))] + public partial class ROImage : BusinessBase, IDisposable, IVEHasBrokenRules + { + #region Log4Net + private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + #endregion + #region Refresh + private List _RefreshROImages = new List(); + private List _RefreshROImageFigures = new List(); + private void AddToRefreshList(List refreshROImages, List refreshROImageFigures) + { + if (IsDirty) + refreshROImages.Add(this); + if (_ROImageFigures != null && _ROImageFigures.IsDirty) + { + foreach (ROImageFigure tmp in _ROImageFigures) + { + if (tmp.IsDirty) refreshROImageFigures.Add(tmp); + } + } + } + private void BuildRefreshList() + { + _RefreshROImages = new List(); + _RefreshROImageFigures = new List(); + AddToRefreshList(_RefreshROImages, _RefreshROImageFigures); + } + private void ProcessRefreshList() + { + foreach (ROImage tmp in _RefreshROImages) + { + ROImageInfo.Refresh(tmp); + if (tmp._MyRODb != null) RODbInfo.Refresh(tmp._MyRODb); + } + foreach (ROImageFigure tmp in _RefreshROImageFigures) + { + FigureInfo.Refresh(tmp); + } + } + #endregion + #region Collection + private static List _CacheList = new List(); + protected static void AddToCache(ROImage rOImage) + { + if (!_CacheList.Contains(rOImage)) _CacheList.Add(rOImage); // In AddToCache + } + protected static void RemoveFromCache(ROImage rOImage) + { + while (_CacheList.Contains(rOImage)) _CacheList.Remove(rOImage); // In RemoveFromCache + } + private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); + private static Dictionary> _CacheByRODbID_FileName_DTS = new Dictionary>(); + private static void ConvertListToDictionary() + { + List remove = new List(); + foreach (ROImage tmp in _CacheList) + { + if (!_CacheByPrimaryKey.ContainsKey(tmp.ImageID.ToString())) + { + _CacheByPrimaryKey[tmp.ImageID.ToString()] = new List(); // Add new list for PrimaryKey + _CacheByRODbID_FileName_DTS[tmp.RODbID.ToString() + "_" + tmp.FileName.ToString() + "_" + tmp.DTS.ToString()] = new List(); // Add new list for RODbID_FileName_DTS + } + _CacheByPrimaryKey[tmp.ImageID.ToString()].Add(tmp); // Add to Primary Key list + _CacheByRODbID_FileName_DTS[tmp.RODbID.ToString() + "_" + tmp.FileName.ToString() + "_" + tmp.DTS.ToString()].Add(tmp); // Unique Index + remove.Add(tmp); + } + foreach (ROImage tmp in remove) + RemoveFromCache(tmp); + } + protected static ROImage GetCachedByPrimaryKey(int imageID) + { + ConvertListToDictionary(); + string key = imageID.ToString(); + if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; + return null; + } + protected static ROImage GetCachedByRODbID_FileName_DTS(int rODbID, string fileName, DateTime dts) + { + ConvertListToDictionary(); + string key = rODbID.ToString() + "_" + fileName.ToString() + "_" + dts.ToString(); + if (_CacheByRODbID_FileName_DTS.ContainsKey(key)) return _CacheByRODbID_FileName_DTS[key][0]; + return null; + } + #endregion + #region Business Methods + private string _ErrorMessage = string.Empty; + public string ErrorMessage + { + get { return _ErrorMessage; } + } + private static int _nextImageID = -1; + public static int NextImageID + { + get { return _nextImageID--; } + } + private int _ImageID; + [System.ComponentModel.DataObjectField(true, true)] + public int ImageID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ImageID", true); + return _ImageID; + } + } + 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; + PropertyHasChanged(); + } + } + } + private string _FileName = string.Empty; + public string FileName + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("FileName", true); + return _FileName; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("FileName", true); + if (value == null) value = string.Empty; + if (_FileName != value) + { + _FileName = value; + PropertyHasChanged(); + } + } + } + private byte[] _Content; + public byte[] Content + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Content", true); + return _Content; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + CanWriteProperty("Content", true); + if (_Content != value) + { + _Content = 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 _ROImageFigureCount = 0; + /// + /// Count of ROImageFigures for this ROImage + /// + public int ROImageFigureCount + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROImageFigureCount", true); + return _ROImageFigureCount; + } + } + private ROImageFigures _ROImageFigures = null; + /// + /// Related Field + /// + [TypeConverter(typeof(ROImageFiguresConverter))] + public ROImageFigures ROImageFigures + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROImageFigures", true); + if (_ROImageFigureCount < 0 || (_ROImageFigureCount > 0 && _ROImageFigures == null)) + _ROImageFigures = ROImageFigures.GetByImageID(ImageID); + if (_ROImageFigureCount < 0 ) + _ROImageFigureCount = _ROImageFigures == null ? 0 : _ROImageFigures.Count; + if (_ROImageFigures == null) + _ROImageFigures = ROImageFigures.New(); + return _ROImageFigures; + } + } + public void Reset_ROImageFigures() + { + _ROImageFigureCount = -1; + } + public override bool IsDirty + { + get { return base.IsDirty || (_ROImageFigures == null ? false : _ROImageFigures.IsDirty) || (_MyRODb == null ? false : _MyRODb.IsDirty); } + } + public override bool IsValid + { + get { return (IsNew && !IsDirty ? true : base.IsValid) && (_ROImageFigures == null ? true : _ROImageFigures.IsValid) && (_MyRODb == null ? true : _MyRODb.IsValid); } + } + // TODO: Replace base ROImage.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current ROImage + //public override string ToString() + //{ + // return base.ToString(); + //} + // TODO: Check ROImage.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 ROImage + protected override object GetIdValue() + { + return _ImageID; + } + #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 (_ROImageFigures != null && (hasBrokenRules = _ROImageFigures.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(MyRODbRequired, "MyRODb"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringRequired, "FileName"); + ValidationRules.AddRule( + Csla.Validation.CommonRules.StringMaxLength, + new Csla.Validation.CommonRules.MaxLengthRuleArgs("FileName", 255)); + 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"); + _ROImageExtension.AddValidationRules(ValidationRules); + // TODO: Add other validation rules + } + protected override void AddInstanceBusinessRules() + { + _ROImageExtension.AddInstanceValidationRules(ValidationRules); + // TODO: Add other validation rules + } + private static bool MyRODbRequired(ROImage 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() + { + //TODO: Who can read/write which fields + //AuthorizationRules.AllowRead(ImageID, ""); + //AuthorizationRules.AllowRead(RODbID, ""); + //AuthorizationRules.AllowRead(FileName, ""); + //AuthorizationRules.AllowRead(Content, ""); + //AuthorizationRules.AllowRead(Config, ""); + //AuthorizationRules.AllowRead(DTS, ""); + //AuthorizationRules.AllowRead(UserID, ""); + //AuthorizationRules.AllowWrite(RODbID, ""); + //AuthorizationRules.AllowWrite(FileName, ""); + //AuthorizationRules.AllowWrite(Content, ""); + //AuthorizationRules.AllowWrite(Config, ""); + //AuthorizationRules.AllowWrite(DTS, ""); + //AuthorizationRules.AllowWrite(UserID, ""); + _ROImageExtension.AddAuthorizationRules(AuthorizationRules); + } + protected override void AddInstanceAuthorizationRules() + { + //TODO: Who can read/write which fields + _ROImageExtension.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; + } + /// + /// determines if related records (Foreign Keys) will keep this Item from being deleted + /// + public bool CanDelete + { + get + { + // Check to make sure that there are not any related records + int usedByCount = 0; + usedByCount += _ROImageFigureCount; + return (usedByCount == 0); + } + } + 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 _ROImageUnique = 0; + protected static int ROImageUnique + { get { return ++_ROImageUnique; } } + private int _MyROImageUnique = ROImageUnique; + public int MyROImageUnique + { get { return _MyROImageUnique; } } + protected ROImage() + {/* require use of factory methods */ + AddToCache(this); + } + public void Dispose() + { + RemoveFromDictionaries(); + } + private void RemoveFromDictionaries() + { + RemoveFromCache(this); + if (_CacheByPrimaryKey.ContainsKey(ImageID.ToString())) + { + List listROImage = _CacheByPrimaryKey[ImageID.ToString()]; // Get the list of items + while (listROImage.Contains(this)) listROImage.Remove(this); // Remove the item from the list + if (listROImage.Count == 0) //If there are no items left in the list + _CacheByPrimaryKey.Remove(ImageID.ToString()); // remove the list + } + string myKey; + myKey = null; + foreach (string key in _CacheByRODbID_FileName_DTS.Keys) + if (_CacheByRODbID_FileName_DTS[key].Contains(this)) + myKey = key; + if (myKey != null) + { + List listROImage = _CacheByRODbID_FileName_DTS[myKey]; // Get the list of items + listROImage.Remove(this); // Remove the item from the list + if (listROImage.Count == 0) //If there are no items left in the list + _CacheByRODbID_FileName_DTS.Remove(myKey); // remove the list + } + } + public static ROImage New() + { + if (!CanAddObject()) + throw new System.Security.SecurityException("User not authorized to add a ROImage"); + try + { + return DataPortal.Create(); + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROImage.New", ex); + } + } + public static ROImage New(RODb myRODb, string fileName, byte[] content) + { + ROImage tmp = ROImage.New(); + tmp.MyRODb = myRODb; + tmp.FileName = fileName; + tmp.Content = content; + return tmp; + } + public static ROImage New(RODb myRODb, string fileName, byte[] content, string config, DateTime dts, string userID) + { + ROImage tmp = ROImage.New(); + tmp.MyRODb = myRODb; + tmp.FileName = fileName; + tmp.Content = content; + tmp.Config = config; + tmp.DTS = dts; + tmp.UserID = userID; + return tmp; + } + public static ROImage MakeROImage(RODb myRODb, string fileName, byte[] content, string config, DateTime dts, string userID) + { + ROImage tmp = ROImage.New(myRODb, fileName, content, config, dts, userID); + if (tmp.IsSavable) + { + ROImage 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 ROImage New(RODb myRODb, string fileName, byte[] content, string config) + { + ROImage tmp = ROImage.New(); + tmp.MyRODb = myRODb; + tmp.FileName = fileName; + tmp.Content = content; + tmp.Config = config; + return tmp; + } + public static ROImage MakeROImage(RODb myRODb, string fileName, byte[] content, string config) + { + ROImage tmp = ROImage.New(myRODb, fileName, content, config); + if (tmp.IsSavable) + { + ROImage 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 ROImage Get(int imageID) + { + if (!CanGetObject()) + throw new System.Security.SecurityException("User not authorized to view a ROImage"); + try + { + ROImage tmp = GetCachedByPrimaryKey(imageID); + if (tmp == null) + { + tmp = DataPortal.Fetch(new PKCriteria(imageID)); + AddToCache(tmp); + } + if (tmp.ErrorMessage == "No Record Found") + { + tmp.Dispose(); // Clean-up ROImage + tmp = null; + } + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROImage.Get", ex); + } + } + public static ROImage GetByRODbID_FileName_DTS(int rODbID, string fileName, DateTime dts) + { + if (!CanGetObject()) + throw new System.Security.SecurityException("User not authorized to view a ROImage"); + try + { + ROImage tmp = GetCachedByRODbID_FileName_DTS(rODbID, fileName, dts); + if (tmp == null) + { + tmp = DataPortal.Fetch(new RODbID_FileName_DTSCriteria(rODbID, fileName, dts)); + AddToCache(tmp); + } + if (tmp.ErrorMessage == "No Record Found") + { + tmp.Dispose(); // Clean-up ROImage + tmp = null; + } + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROImage.GetByRODbID_FileName_DTS", ex); + } + } + public static ROImage Get(SafeDataReader dr) + { + if (dr.Read()) return new ROImage(dr); + return null; + } + internal ROImage(SafeDataReader dr) + { + ReadData(dr); + } + public static void Delete(int imageID) + { + if (!CanDeleteObject()) + throw new System.Security.SecurityException("User not authorized to remove a ROImage"); + try + { + DataPortal.Delete(new PKCriteria(imageID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROImage.Delete", ex); + } + } + public override ROImage Save() + { + if (IsDeleted && !CanDeleteObject()) + throw new System.Security.SecurityException("User not authorized to remove a ROImage"); + else if (IsNew && !CanAddObject()) + throw new System.Security.SecurityException("User not authorized to add a ROImage"); + else if (!CanEditObject()) + throw new System.Security.SecurityException("User not authorized to update a ROImage"); + try + { + BuildRefreshList(); + ROImage rOImage = base.Save(); + RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache + AddToCache(rOImage);//Refresh the item in AllList + ProcessRefreshList(); + return rOImage; + } + catch (Exception ex) + { + throw new DbCslaException("Error on CSLA Save", ex); + } + } + #endregion + #region Data Access Portal + [Serializable()] + protected class PKCriteria + { + private int _ImageID; + public int ImageID + { get { return _ImageID; } } + public PKCriteria(int imageID) + { + _ImageID = imageID; + } + } + [Serializable()] + private class RODbID_FileName_DTSCriteria + { + private int _RODbID; + public int RODbID + { get { return _RODbID; } } + private string _FileName; + public string FileName + { get { return _FileName; } } + private DateTime _DTS; + public DateTime DTS + { get { return _DTS; } } + public RODbID_FileName_DTSCriteria(int rODbID, string fileName, DateTime dts) + { + _RODbID = rODbID; + _FileName = fileName; + _DTS = dts; + } + } + // TODO: If Create needs to access DB - It should not be marked RunLocal + [RunLocal()] + private new void DataPortal_Create() + { + _ImageID = NextImageID; + // Database Defaults + _DTS = _ROImageExtension.DefaultDTS; + _UserID = _ROImageExtension.DefaultUserID; + // TODO: Add any defaults that are necessary + ValidationRules.CheckRules(); + } + private void ReadData(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImage.ReadData", GetHashCode()); + try + { + _ImageID = dr.GetInt32("ImageID"); + _RODbID = dr.GetInt32("RODbID"); + _FileName = dr.GetString("FileName"); + _Content = (byte[])dr.GetValue("Content"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + _ROImageFigureCount = dr.GetInt32("FigureCount"); + MarkOld(); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImage.ReadData", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROImage.ReadData", ex); + } + } + private void DataPortal_Fetch(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImage.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 = "getROImage"; + cm.Parameters.AddWithValue("@ImageID", criteria.ImageID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + if (!dr.Read()) + { + _ErrorMessage = "No Record Found"; + return; + } + ReadData(dr); + // load child objects + dr.NextResult(); + _ROImageFigures = ROImageFigures.Get(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("ROImage.DataPortal_Fetch", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROImage.DataPortal_Fetch", ex); + } + } + private void DataPortal_Fetch(RODbID_FileName_DTSCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImage.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 = "getROImageByRODbID_FileName_DTS"; + cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); + cm.Parameters.AddWithValue("@FileName", criteria.FileName); + if (criteria.DTS.Year >= 1753 && criteria.DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", criteria.DTS); + 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("ROImage.DataPortal_Fetch", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROImage.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("ROImage.DataPortal_Insert", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROImage.DataPortal_Insert", ex); + } + finally + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImage.DataPortal_Insert", GetHashCode()); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + internal void SQLInsert() + { + if (!this.IsDirty) return; + try + { + if (_MyRODb != null) _MyRODb.Update(); + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "addROImage"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@RODbID", RODbID); + cm.Parameters.AddWithValue("@FileName", _FileName); + cm.Parameters.AddWithValue("@Content", _Content); + 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_ImageID = new SqlParameter("@newImageID", SqlDbType.Int); + param_ImageID.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_ImageID); + 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 + _ImageID = (int)cm.Parameters["@newImageID"].Value; + _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; + } + MarkOld(); + // update child objects + if (_ROImageFigures != null) _ROImageFigures.Update(this); + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImage.SQLInsert", GetHashCode()); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImage.SQLInsert", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROImage.SQLInsert", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static byte[] Add(SqlConnection cn, ref int imageID, RODb myRODb, string fileName, byte[] content, string config, DateTime dts, string userID) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImage.Add", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "addROImage"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@RODbID", myRODb.RODbID); + cm.Parameters.AddWithValue("@FileName", fileName); + cm.Parameters.AddWithValue("@Content", content); + 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_ImageID = new SqlParameter("@newImageID", SqlDbType.Int); + param_ImageID.Direction = ParameterDirection.Output; + cm.Parameters.Add(param_ImageID); + 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 + imageID = (int)cm.Parameters["@newImageID"].Value; + return (byte[])cm.Parameters["@newLastChanged"].Value; + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImage.Add", ex); + throw new DbCslaException("ROImage.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}] ROImage.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("ROImage.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}] ROImage.SQLUpdate", GetHashCode()); + try + { + 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 = "updateROImage"; + // All Fields including Calculated Fields + cm.Parameters.AddWithValue("@ImageID", _ImageID); + cm.Parameters.AddWithValue("@RODbID", RODbID); + cm.Parameters.AddWithValue("@FileName", _FileName); + cm.Parameters.AddWithValue("@Content", _Content); + 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 + if (_ROImageFigures != null) _ROImageFigures.Update(this); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImage.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 = ROImage.Add(cn, ref _ImageID, _MyRODb, _FileName, _Content, _Config, _DTS, _UserID); + else + _LastChanged = ROImage.Update(cn, ref _ImageID, _MyRODb, _FileName, _Content, _Config, _DTS, _UserID, ref _LastChanged); + MarkOld(); + } + if (_ROImageFigures != null) _ROImageFigures.Update(this); + } + [Transactional(TransactionalTypes.TransactionScope)] + public static byte[] Update(SqlConnection cn, ref int imageID, RODb myRODb, string fileName, byte[] content, string config, DateTime dts, string userID, ref byte[] lastChanged) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImage.Update", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "updateROImage"; + // Input All Fields - Except Calculated Columns + cm.Parameters.AddWithValue("@ImageID", imageID); + cm.Parameters.AddWithValue("@RODbID", myRODb.RODbID); + cm.Parameters.AddWithValue("@FileName", fileName); + cm.Parameters.AddWithValue("@Content", content); + 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("ROImage.Update", ex); + throw new DbCslaException("ROImage.Update", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + protected override void DataPortal_DeleteSelf() + { + DataPortal_Delete(new PKCriteria(_ImageID)); + } + [Transactional(TransactionalTypes.TransactionScope)] + private void DataPortal_Delete(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImage.DataPortal_Delete", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "deleteROImage"; + cm.Parameters.AddWithValue("@ImageID", criteria.ImageID); + cm.ExecuteNonQuery(); + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImage.DataPortal_Delete", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROImage.DataPortal_Delete", ex); + } + } + [Transactional(TransactionalTypes.TransactionScope)] + public static void Remove(SqlConnection cn, int imageID) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImage.Remove", 0); + try + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "deleteROImage"; + // Input PK Fields + cm.Parameters.AddWithValue("@ImageID", imageID); + // TODO: Define any additional output parameters + cm.ExecuteNonQuery(); + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImage.Remove", ex); + throw new DbCslaException("ROImage.Remove", ex); + } + } + #endregion + #region Exists + public static bool Exists(int imageID) + { + ExistsCommand result; + try + { + result = DataPortal.Execute(new ExistsCommand(imageID)); + return result.Exists; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROImage.Exists", ex); + } + } + [Serializable()] + private class ExistsCommand : CommandBase + { + private int _ImageID; + private bool _exists; + public bool Exists + { + get { return _exists; } + } + public ExistsCommand(int imageID) + { + _ImageID = imageID; + } + protected override void DataPortal_Execute() + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImage.DataPortal_Execute", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + cn.Open(); + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "existsROImage"; + cm.Parameters.AddWithValue("@ImageID", _ImageID); + int count = (int)cm.ExecuteScalar(); + _exists = (count > 0); + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImage.DataPortal_Execute", ex); + throw new DbCslaException("ROImage.DataPortal_Execute", ex); + } + } + } + #endregion + // Standard Default Code + #region extension + ROImageExtension _ROImageExtension = new ROImageExtension(); + [Serializable()] + partial class ROImageExtension : 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 ROImageConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is ROImage) + { + // Return the ToString value + return ((ROImage)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create ROImageExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class ROImage +// { +// partial class ROImageExtension : 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/ROImageFigure.cs b/PROMS/VEPROMS.CSLA.Library/Generated/ROImageFigure.cs new file mode 100644 index 00000000..8053ecc5 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/ROImageFigure.cs @@ -0,0 +1,526 @@ +// ======================================================================== +// 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 Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// ROImageFigure Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(ROImageFigureConverter))] + public partial class ROImageFigure : 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 _FigureID; + [System.ComponentModel.DataObjectField(true, true)] + public int FigureID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("FigureID", true); + if (_MyFigure != null) _FigureID = _MyFigure.FigureID; + return _FigureID; + } + } + private Figure _MyFigure; + [System.ComponentModel.DataObjectField(true, true)] + public Figure MyFigure + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("MyFigure", true); + if (_MyFigure == null && _FigureID != 0) _MyFigure = Figure.Get(_FigureID); + return _MyFigure; + } + } + 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 + private int _ROFst_RODbID; + public int ROFst_RODbID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFst_RODbID", true); + return _ROFst_RODbID; + } + } + private byte[] _ROFst_ROLookup; + public byte[] ROFst_ROLookup + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFst_ROLookup", true); + return _ROFst_ROLookup; + } + } + private string _ROFst_Config = string.Empty; + public string ROFst_Config + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFst_Config", true); + return _ROFst_Config; + } + } + private DateTime _ROFst_DTS = new DateTime(); + public DateTime ROFst_DTS + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFst_DTS", true); + return _ROFst_DTS; + } + } + private string _ROFst_UserID = string.Empty; + public string ROFst_UserID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROFst_UserID", true); + return _ROFst_UserID; + } + } + // TODO: Check ROImageFigure.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 ROImageFigure + protected override object GetIdValue() + { + return _FigureID; + } + // TODO: Replace base ROImageFigure.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current ROImageFigure + //public override string ToString() + //{ + // return base.ToString(); + //} + public override bool IsDirty + { + get { return base.IsDirty || (_MyROFst == null ? false : _MyROFst.IsDirty); } + } + public override bool IsValid + { + get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyROFst == null ? true : _MyROFst.IsValid); } + } + #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 (_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(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)); + // TODO: Add other validation rules + } + private static bool MyROFstRequired(ROImageFigure 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(FigureID, ""); + //AuthorizationRules.AllowRead(ROFstID, ""); + //AuthorizationRules.AllowWrite(ROFstID, ""); + //AuthorizationRules.AllowRead(Config, ""); + //AuthorizationRules.AllowWrite(Config, ""); + //AuthorizationRules.AllowRead(DTS, ""); + //AuthorizationRules.AllowWrite(DTS, ""); + //AuthorizationRules.AllowRead(UserID, ""); + //AuthorizationRules.AllowWrite(UserID, ""); + } + 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; } } + internal static ROImageFigure New(ROFst myROFst) + { + return new ROImageFigure(myROFst); + } + internal static ROImageFigure Get(SafeDataReader dr) + { + return new ROImageFigure(dr); + } + public ROImageFigure() + { + MarkAsChild(); + _FigureID = Figure.NextFigureID; + _DTS = _ROImageFigureExtension.DefaultDTS; + _UserID = _ROImageFigureExtension.DefaultUserID; + ValidationRules.CheckRules(); + } + private ROImageFigure(ROFst myROFst) + { + MarkAsChild(); + // TODO: Add any initialization & defaults + _DTS = _ROImageFigureExtension.DefaultDTS; + _UserID = _ROImageFigureExtension.DefaultUserID; + _MyROFst = myROFst; + ValidationRules.CheckRules(); + } + internal ROImageFigure(SafeDataReader dr) + { + MarkAsChild(); + Fetch(dr); + } + #endregion + #region Data Access Portal + private void Fetch(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImageFigure.FetchDR", GetHashCode()); + try + { + _FigureID = dr.GetInt32("FigureID"); + _ROFstID = dr.GetInt32("ROFstID"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + _ROFst_RODbID = dr.GetInt32("ROFst_RODbID"); + _ROFst_ROLookup = (byte[])dr.GetValue("ROFst_ROLookup"); + _ROFst_Config = dr.GetString("ROFst_Config"); + _ROFst_DTS = dr.GetDateTime("ROFst_DTS"); + _ROFst_UserID = dr.GetString("ROFst_UserID"); + } + catch (Exception ex) // FKItem Fetch + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImageFigure.FetchDR", ex); + throw new DbCslaException("ROImageFigure.Fetch", ex); + } + MarkOld(); + } + internal void Insert(ROImage myROImage) + { + // if we're not dirty then don't update the database + if (!this.IsDirty) return; + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + _LastChanged = Figure.Add(cn, ref _FigureID, _MyROFst, myROImage, _Config, _DTS, _UserID); + MarkOld(); + } + internal void Update(ROImage myROImage) + { + // if we're not dirty then don't update the database + if (!this.IsDirty) return; + SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; + _LastChanged = Figure.Update(cn, ref _FigureID, _MyROFst, myROImage, _Config, _DTS, _UserID, ref _LastChanged); + MarkOld(); + } + internal void DeleteSelf(ROImage myROImage) + { + // 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"]; + Figure.Remove(cn, _FigureID); + MarkNew(); + } + #endregion + // Standard Default Code + #region extension + ROImageFigureExtension _ROImageFigureExtension = new ROImageFigureExtension(); + [Serializable()] + partial class ROImageFigureExtension : 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 ROImageFigureConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is ROImageFigure) + { + // Return the ToString value + return ((ROImageFigure)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace + + +//// The following is a sample Extension File. You can use it to create ROImageFigureExt.cs +//using System; +//using System.Collections.Generic; +//using System.Text; +//using Csla; + +//namespace VEPROMS.CSLA.Library +//{ +// public partial class ROImageFigure +// { +// partial class ROImageFigureExtension : 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/ROImageFigures.cs b/PROMS/VEPROMS.CSLA.Library/Generated/ROImageFigures.cs new file mode 100644 index 00000000..25a80944 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/ROImageFigures.cs @@ -0,0 +1,309 @@ +// ======================================================================== +// 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 Csla.Validation; +namespace VEPROMS.CSLA.Library +{ + /// + /// ROImageFigures Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(ROImageFiguresConverter))] + public partial class ROImageFigures : 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 ROImageFigure this[Figure myFigure] + { + get + { + foreach (ROImageFigure figure in this) + if (figure.FigureID == myFigure.FigureID) + return figure; + return null; + } + } + public new System.Collections.Generic.IList Items + { + get { return base.Items; } + } + public ROImageFigure GetItem(Figure myFigure) + { + foreach (ROImageFigure figure in this) + if (figure.FigureID == myFigure.FigureID) + return figure; + return null; + } + public ROImageFigure Add(ROFst myROFst) // One to Many with unique fields + { + if (!Contains(myROFst)) + { + ROImageFigure figure = ROImageFigure.New(myROFst); + this.Add(figure); + return figure; + } + else + throw new InvalidOperationException("figure already exists"); + } + public void Remove(Figure myFigure) + { + foreach (ROImageFigure figure in this) + { + if (figure.FigureID == myFigure.FigureID) + { + Remove(figure); + break; + } + } + } + public bool Contains(Figure myFigure) + { + foreach (ROImageFigure figure in this) + if (figure.FigureID == myFigure.FigureID) + return true; + return false; + } + public bool ContainsDeleted(Figure myFigure) + { + foreach (ROImageFigure figure in DeletedList) + if (figure.FigureID == myFigure.FigureID) + return true; + return false; + } + public bool Contains(ROFst myROFst) + { + foreach (ROImageFigure figure in this) + if (figure.ROFstID == myROFst.ROFstID) + return true; + return false; + } + public bool ContainsDeleted(ROFst myROFst) + { + foreach (ROImageFigure figure in DeletedList) + if (figure.ROFstID == myROFst.ROFstID) + return true; + return false; + } + #endregion + #region ValidationRules + public IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + foreach (ROImageFigure rOImageFigure in this) + if ((hasBrokenRules = rOImageFigure.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 ROImageFigures New() + { + return new ROImageFigures(); + } + internal static ROImageFigures Get(SafeDataReader dr) + { + return new ROImageFigures(dr); + } + public static ROImageFigures GetByImageID(int imageID) + { + try + { + return DataPortal.Fetch(new ImageIDCriteria(imageID)); + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROImageFigures.GetByImageID", ex); + } + } + private ROImageFigures() + { + MarkAsChild(); + } + internal ROImageFigures(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(ROImageFigure.Get(dr)); + this.RaiseListChangedEvents = true; + } + [Serializable()] + private class ImageIDCriteria + { + public ImageIDCriteria(int imageID) + { + _ImageID = imageID; + } + private int _ImageID; + public int ImageID + { + get { return _ImageID; } + set { _ImageID = value; } + } + } + private void DataPortal_Fetch(ImageIDCriteria criteria) + { + this.RaiseListChangedEvents = false; + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImageFigures.DataPortal_FetchImageID", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getFiguresByImageID"; + cm.Parameters.AddWithValue("@ImageID", criteria.ImageID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + while (dr.Read()) this.Add(new ROImageFigure(dr)); + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImageFigures.DataPortal_FetchImageID", ex); + throw new DbCslaException("ROImageFigures.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } + internal void Update(ROImage rOImage) + { + this.RaiseListChangedEvents = false; + try + { + // update (thus deleting) any deleted child objects + foreach (ROImageFigure obj in DeletedList) + obj.DeleteSelf(rOImage);// Deletes related record + // now that they are deleted, remove them from memory too + DeletedList.Clear(); + // add/update any current child objects + foreach (ROImageFigure obj in this) + { + if (obj.IsNew) + obj.Insert(rOImage); + else + obj.Update(rOImage); + } + } + 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 + ROImageFiguresPropertyDescriptor pd = new ROImageFiguresPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class ROImageFiguresPropertyDescriptor : vlnListPropertyDescriptor + { + private ROImageFigure Item { get { return (ROImageFigure)_Item; } } + public ROImageFiguresPropertyDescriptor(ROImageFigures collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class ROImageFiguresConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is ROImageFigures) + { + // Return department and department role separated by comma. + return ((ROImageFigures)value).Items.Count.ToString() + " Figures"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/ROImageInfo.cs b/PROMS/VEPROMS.CSLA.Library/Generated/ROImageInfo.cs new file mode 100644 index 00000000..78bf3a7b --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/ROImageInfo.cs @@ -0,0 +1,441 @@ +// ======================================================================== +// 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 ROImageInfoEvent(object sender); + /// + /// ROImageInfo Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(ROImageInfoConverter))] + public partial class ROImageInfo : ReadOnlyBase, IDisposable + { + public event ROImageInfoEvent 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(ROImageInfo rOImageInfo) + { + if (!_CacheList.Contains(rOImageInfo)) _CacheList.Add(rOImageInfo); // In AddToCache + } + protected static void RemoveFromCache(ROImageInfo rOImageInfo) + { + while (_CacheList.Contains(rOImageInfo)) _CacheList.Remove(rOImageInfo); // In RemoveFromCache + } + private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); + private static void ConvertListToDictionary() + { + List remove = new List(); + foreach (ROImageInfo tmp in _CacheList) + { + if (!_CacheByPrimaryKey.ContainsKey(tmp.ImageID.ToString())) + { + _CacheByPrimaryKey[tmp.ImageID.ToString()] = new List(); // Add new list for PrimaryKey + } + _CacheByPrimaryKey[tmp.ImageID.ToString()].Add(tmp); // Add to Primary Key list + remove.Add(tmp); + } + foreach (ROImageInfo tmp in remove) + RemoveFromCache(tmp); + } + internal static void AddList(ROImageInfoList lst) + { + foreach (ROImageInfo item in lst) AddToCache(item); + } + protected static ROImageInfo GetCachedByPrimaryKey(int imageID) + { + ConvertListToDictionary(); + string key = imageID.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 ROImage _Editable; + private IVEHasBrokenRules HasBrokenRules + { + get + { + IVEHasBrokenRules hasBrokenRules = null; + if (_Editable != null) + hasBrokenRules = _Editable.HasBrokenRules; + return hasBrokenRules; + } + } + private int _ImageID; + [System.ComponentModel.DataObjectField(true, true)] + public int ImageID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ImageID", true); + return _ImageID; + } + } + 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; + } + } + private string _FileName = string.Empty; + public string FileName + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("FileName", true); + return _FileName; + } + } + private byte[] _Content; + public byte[] Content + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("Content", true); + return _Content; + } + } + 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 _ROImageFigureCount = 0; + /// + /// Count of ROImageFigures for this ROImage + /// + public int ROImageFigureCount + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROImageFigureCount", true); + return _ROImageFigureCount; + } + } + private FigureInfoList _ROImageFigures = null; + [TypeConverter(typeof(FigureInfoListConverter))] + public FigureInfoList ROImageFigures + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + CanReadProperty("ROImageFigures", true); + if (_ROImageFigureCount < 0 || (_ROImageFigureCount > 0 && _ROImageFigures == null)) + _ROImageFigures = FigureInfoList.GetByImageID(_ImageID); + if (_ROImageFigureCount < 0) + _ROImageFigureCount = _ROImageFigures.Count; + return _ROImageFigures; + } + } + public void RefreshROImageFigures() + { + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(_ImageID.ToString())) + foreach (ROImageInfo tmp in _CacheByPrimaryKey[_ImageID.ToString()]) + tmp._ROImageFigureCount = -1; // This will cause the data to be requeried + } + // TODO: Replace base ROImageInfo.ToString function as necessary + /// + /// Overrides Base ToString + /// + /// A string representation of current ROImageInfo + //public override string ToString() + //{ + // return base.ToString(); + //} + // TODO: Check ROImageInfo.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 ROImageInfo + protected override object GetIdValue() + { + return _ImageID; + } + #endregion + #region Factory Methods + private static int _ROImageInfoUnique = 0; + private static int ROImageInfoUnique + { get { return ++_ROImageInfoUnique; } } + private int _MyROImageInfoUnique = ROImageInfoUnique; + public int MyROImageInfoUnique + { get { return _MyROImageInfoUnique; } } + protected ROImageInfo() + {/* require use of factory methods */ + AddToCache(this); + } + public void Dispose() + { + RemoveFromCache(this); + if (!_CacheByPrimaryKey.ContainsKey(ImageID.ToString())) return; + List listROImageInfo = _CacheByPrimaryKey[ImageID.ToString()]; // Get the list of items + while (listROImageInfo.Contains(this)) listROImageInfo.Remove(this); // Remove the item from the list + if (listROImageInfo.Count == 0) // If there are no items left in the list + _CacheByPrimaryKey.Remove(ImageID.ToString()); // remove the list + } + public virtual ROImage Get() + { + return _Editable = ROImage.Get(_ImageID); + } + public static void Refresh(ROImage tmp) + { + string key = tmp.ImageID.ToString(); + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(key)) + foreach (ROImageInfo tmpInfo in _CacheByPrimaryKey[key]) + tmpInfo.RefreshFields(tmp); + } + protected virtual void RefreshFields(ROImage tmp) + { + if (_RODbID != tmp.RODbID) + { + if (MyRODb != null) MyRODb.RefreshRODbROImages(); // 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.RefreshRODbROImages(); // Update List for new value + _FileName = tmp.FileName; + _Content = tmp.Content; + _Config = tmp.Config; + _DTS = tmp.DTS; + _UserID = tmp.UserID; + _ROImageInfoExtension.Refresh(this); + if(_MyRODb != null) + { + _MyRODb.Dispose();// Dispose related value + _MyRODb = null;// Reset related value + } + OnChange();// raise an event + } + public static void Refresh(RODbROImage tmp) + { + string key = tmp.ImageID.ToString(); + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(key)) + foreach (ROImageInfo tmpInfo in _CacheByPrimaryKey[key]) + tmpInfo.RefreshFields(tmp); + } + protected virtual void RefreshFields(RODbROImage tmp) + { + _FileName = tmp.FileName; + _Content = tmp.Content; + _Config = tmp.Config; + _DTS = tmp.DTS; + _UserID = tmp.UserID; + _ROImageInfoExtension.Refresh(this); + if(_MyRODb != null) + { + _MyRODb.Dispose();// Dispose related value + _MyRODb = null;// Reset related value + } + OnChange();// raise an event + } + public static ROImageInfo Get(int imageID) + { + //if (!CanGetObject()) + // throw new System.Security.SecurityException("User not authorized to view a ROImage"); + try + { + ROImageInfo tmp = GetCachedByPrimaryKey(imageID); + if (tmp == null) + { + tmp = DataPortal.Fetch(new PKCriteria(imageID)); + AddToCache(tmp); + } + if (tmp.ErrorMessage == "No Record Found") + { + tmp.Dispose(); // Clean-up ROImageInfo + tmp = null; + } + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROImageInfo.Get", ex); + } + } + #endregion + #region Data Access Portal + internal ROImageInfo(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImageInfo.Constructor", GetHashCode()); + try + { + ReadData(dr); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImageInfo.Constructor", ex); + throw new DbCslaException("ROImageInfo.Constructor", ex); + } + } + [Serializable()] + protected class PKCriteria + { + private int _ImageID; + public int ImageID + { get { return _ImageID; } } + public PKCriteria(int imageID) + { + _ImageID = imageID; + } + } + private void ReadData(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImageInfo.ReadData", GetHashCode()); + try + { + _ImageID = dr.GetInt32("ImageID"); + _RODbID = dr.GetInt32("RODbID"); + _FileName = dr.GetString("FileName"); + _Content = (byte[])dr.GetValue("Content"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("DTS"); + _UserID = dr.GetString("UserID"); + _ROImageFigureCount = dr.GetInt32("FigureCount"); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImageInfo.ReadData", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROImageInfo.ReadData", ex); + } + } + private void DataPortal_Fetch(PKCriteria criteria) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImageInfo.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 = "getROImage"; + cm.Parameters.AddWithValue("@ImageID", criteria.ImageID); + 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("ROImageInfo.DataPortal_Fetch", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ROImageInfo.DataPortal_Fetch", ex); + } + } + #endregion + // Standard Refresh + #region extension + ROImageInfoExtension _ROImageInfoExtension = new ROImageInfoExtension(); + [Serializable()] + partial class ROImageInfoExtension : extensionBase { } + [Serializable()] + class extensionBase + { + // Default Refresh + public virtual void Refresh(ROImageInfo tmp) { } + } + #endregion + } // Class + #region Converter + internal class ROImageInfoConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is ROImageInfo) + { + // Return the ToString value + return ((ROImageInfo)value).ToString(); + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/ROImageInfoList.cs b/PROMS/VEPROMS.CSLA.Library/Generated/ROImageInfoList.cs new file mode 100644 index 00000000..6116d745 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Generated/ROImageInfoList.cs @@ -0,0 +1,262 @@ +// ======================================================================== +// 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 +{ + /// + /// ROImageInfoList Generated by MyGeneration using the CSLA Object Mapping template + /// + [Serializable()] + [TypeConverter(typeof(ROImageInfoListConverter))] + public partial class ROImageInfoList : 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 (ROImageInfo tmp in this) + { + tmp.Changed += new ROImageInfoEvent(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 (ROImageInfo tmp in this) + { + tmp.Changed -= new ROImageInfoEvent(tmp_Changed); + } + } + #endregion + #region Factory Methods + public static ROImageInfoList _ROImageInfoList = null; + /// + /// Return a list of all ROImageInfo. + /// + public static ROImageInfoList Get() + { + try + { + if (_ROImageInfoList != null) + return _ROImageInfoList; + ROImageInfoList tmp = DataPortal.Fetch(); + ROImageInfo.AddList(tmp); + tmp.AddEvents(); + _ROImageInfoList = tmp; + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROImageInfoList.Get", ex); + } + } + /// + /// Reset the list of all ROImageInfo. + /// + public static void Reset() + { + _ROImageInfoList = null; + } + // TODO: Add alternative gets - + //public static ROImageInfoList Get() + //{ + // try + // { + // return DataPortal.Fetch(new FilteredCriteria()); + // } + // catch (Exception ex) + // { + // throw new DbCslaException("Error on ROImageInfoList.Get", ex); + // } + //} + public static ROImageInfoList GetByRODbID(int rODbID) + { + try + { + ROImageInfoList tmp = DataPortal.Fetch(new RODbIDCriteria(rODbID)); + ROImageInfo.AddList(tmp); + tmp.AddEvents(); + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ROImageInfoList.GetByRODbID", ex); + } + } + private ROImageInfoList() + { /* require use of factory methods */ } + #endregion + #region Data Access Portal + private void DataPortal_Fetch() + { + this.RaiseListChangedEvents = false; + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImageInfoList.DataPortal_Fetch", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getROImages"; + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + IsReadOnly = false; + while (dr.Read()) this.Add(new ROImageInfo(dr)); + IsReadOnly = true; + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImageInfoList.DataPortal_Fetch", ex); + throw new DbCslaException("ROImageInfoList.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}] ROImageInfoList.DataPortal_FetchRODbID", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getROImagesByRODbID"; + cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + IsReadOnly = false; + while (dr.Read()) this.Add(new ROImageInfo(dr)); + IsReadOnly = true; + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImageInfoList.DataPortal_FetchRODbID", ex); + throw new DbCslaException("ROImageInfoList.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 + ROImageInfoListPropertyDescriptor pd = new ROImageInfoListPropertyDescriptor(this, i); + pds.Add(pd); + } + // return the property descriptor collection + return pds; + } + #endregion + } // Class + #region Property Descriptor + /// + /// Summary description for CollectionPropertyDescriptor. + /// + public partial class ROImageInfoListPropertyDescriptor : vlnListPropertyDescriptor + { + private ROImageInfo Item { get { return (ROImageInfo)_Item; } } + public ROImageInfoListPropertyDescriptor(ROImageInfoList collection, int index) : base(collection, index) { ;} + } + #endregion + #region Converter + internal class ROImageInfoListConverter : ExpandableObjectConverter + { + public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) + { + if (destType == typeof(string) && value is ROImageInfoList) + { + // Return department and department role separated by comma. + return ((ROImageInfoList)value).Items.Count.ToString() + " ROImages"; + } + return base.ConvertTo(context, culture, value, destType); + } + } + #endregion +} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/RoUsage.cs b/PROMS/VEPROMS.CSLA.Library/Generated/RoUsage.cs index d0f7739c..61f9ec90 100644 --- a/PROMS/VEPROMS.CSLA.Library/Generated/RoUsage.cs +++ b/PROMS/VEPROMS.CSLA.Library/Generated/RoUsage.cs @@ -48,6 +48,7 @@ namespace VEPROMS.CSLA.Library { RoUsageInfo.Refresh(tmp); if (tmp._MyContent != null) ContentInfo.Refresh(tmp._MyContent); + if (tmp._MyRODb != null) RODbInfo.Refresh(tmp._MyRODb); } } #endregion @@ -223,13 +224,45 @@ namespace VEPROMS.CSLA.Library } } 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; + PropertyHasChanged(); + } + } + } public override bool IsDirty { - get { return base.IsDirty || (_MyContent == null ? false : _MyContent.IsDirty); } + get { return base.IsDirty || (_MyContent == null ? false : _MyContent.IsDirty) || (_MyRODb == null ? false : _MyRODb.IsDirty); } } public override bool IsValid { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyContent == null ? true : _MyContent.IsValid); } + get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyContent == null ? true : _MyContent.IsValid) && (_MyRODb == null ? true : _MyRODb.IsValid); } } // TODO: Replace base RoUsage.ToString function as necessary /// @@ -264,6 +297,7 @@ namespace VEPROMS.CSLA.Library _CheckingBrokenRules = true; IVEHasBrokenRules hasBrokenRules = null; if (_MyContent != null && (hasBrokenRules = _MyContent.HasBrokenRules) != null) return hasBrokenRules; + if (_MyRODb != null && (hasBrokenRules = _MyRODb.HasBrokenRules) != null) return hasBrokenRules; return hasBrokenRules; } finally @@ -297,6 +331,7 @@ namespace VEPROMS.CSLA.Library ValidationRules.AddRule( Csla.Validation.CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); + ValidationRules.AddRule(MyRODbRequired, "MyRODb"); //ValidationRules.AddDependantProperty("x", "y"); _RoUsageExtension.AddValidationRules(ValidationRules); // TODO: Add other validation rules @@ -315,6 +350,15 @@ namespace VEPROMS.CSLA.Library } return true; } + private static bool MyRODbRequired(RoUsage 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) //{ @@ -337,11 +381,13 @@ namespace VEPROMS.CSLA.Library //AuthorizationRules.AllowRead(Config, ""); //AuthorizationRules.AllowRead(DTS, ""); //AuthorizationRules.AllowRead(UserID, ""); + //AuthorizationRules.AllowRead(RODbID, ""); //AuthorizationRules.AllowWrite(ContentID, ""); //AuthorizationRules.AllowWrite(ROID, ""); //AuthorizationRules.AllowWrite(Config, ""); //AuthorizationRules.AllowWrite(DTS, ""); //AuthorizationRules.AllowWrite(UserID, ""); + //AuthorizationRules.AllowWrite(RODbID, ""); _RoUsageExtension.AddAuthorizationRules(AuthorizationRules); } protected override void AddInstanceAuthorizationRules() @@ -417,13 +463,14 @@ namespace VEPROMS.CSLA.Library throw new DbCslaException("Error on RoUsage.New", ex); } } - public static RoUsage New(string roid) + public static RoUsage New(string roid, RODb myRODb) { RoUsage tmp = RoUsage.New(); tmp.ROID = roid; + tmp.MyRODb = myRODb; return tmp; } - public static RoUsage New(Content myContent, string roid, string config, DateTime dts, string userID) + public static RoUsage New(Content myContent, string roid, string config, DateTime dts, string userID, RODb myRODb) { RoUsage tmp = RoUsage.New(); tmp.MyContent = myContent; @@ -431,11 +478,12 @@ namespace VEPROMS.CSLA.Library tmp.Config = config; tmp.DTS = dts; tmp.UserID = userID; + tmp.MyRODb = myRODb; return tmp; } - public static RoUsage MakeRoUsage(Content myContent, string roid, string config, DateTime dts, string userID) + public static RoUsage MakeRoUsage(Content myContent, string roid, string config, DateTime dts, string userID, RODb myRODb) { - RoUsage tmp = RoUsage.New(myContent, roid, config, dts, userID); + RoUsage tmp = RoUsage.New(myContent, roid, config, dts, userID, myRODb); if (tmp.IsSavable) { RoUsage tmp2 = tmp; @@ -453,17 +501,18 @@ namespace VEPROMS.CSLA.Library } return tmp; } - public static RoUsage New(Content myContent, string roid, string config) + public static RoUsage New(Content myContent, string roid, string config, RODb myRODb) { RoUsage tmp = RoUsage.New(); tmp.MyContent = myContent; tmp.ROID = roid; tmp.Config = config; + tmp.MyRODb = myRODb; return tmp; } - public static RoUsage MakeRoUsage(Content myContent, string roid, string config) + public static RoUsage MakeRoUsage(Content myContent, string roid, string config, RODb myRODb) { - RoUsage tmp = RoUsage.New(myContent, roid, config); + RoUsage tmp = RoUsage.New(myContent, roid, config, myRODb); if (tmp.IsSavable) { RoUsage tmp2 = tmp; @@ -586,6 +635,7 @@ namespace VEPROMS.CSLA.Library _DTS = dr.GetDateTime("DTS"); _UserID = dr.GetString("UserID"); dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); + _RODbID = dr.GetInt32("RODbID"); MarkOld(); } catch (Exception ex) @@ -662,6 +712,7 @@ namespace VEPROMS.CSLA.Library try { if (_MyContent != null) _MyContent.Update(); + if (_MyRODb != null) _MyRODb.Update(); SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; using (SqlCommand cm = cn.CreateCommand()) { @@ -673,6 +724,7 @@ namespace VEPROMS.CSLA.Library 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_ROUsageID = new SqlParameter("@newROUsageID", SqlDbType.Int); param_ROUsageID.Direction = ParameterDirection.Output; @@ -698,7 +750,7 @@ namespace VEPROMS.CSLA.Library } } [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int rOUsageID, Content myContent, string roid, string config, DateTime dts, string userID) + public static byte[] Add(SqlConnection cn, ref int rOUsageID, Content myContent, string roid, string config, DateTime dts, string userID, RODb myRODb) { if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsage.Add", 0); try @@ -713,6 +765,7 @@ namespace VEPROMS.CSLA.Library 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_ROUsageID = new SqlParameter("@newROUsageID", SqlDbType.Int); param_ROUsageID.Direction = ParameterDirection.Output; @@ -764,6 +817,7 @@ namespace VEPROMS.CSLA.Library try { if (_MyContent != null) _MyContent.Update(); + if (_MyRODb != null) _MyRODb.Update(); SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; if (base.IsDirty) { @@ -779,6 +833,7 @@ namespace VEPROMS.CSLA.Library 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; @@ -806,14 +861,14 @@ namespace VEPROMS.CSLA.Library { SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; if (IsNew) - _LastChanged = RoUsage.Add(cn, ref _ROUsageID, _MyContent, _ROID, _Config, _DTS, _UserID); + _LastChanged = RoUsage.Add(cn, ref _ROUsageID, _MyContent, _ROID, _Config, _DTS, _UserID, _MyRODb); else - _LastChanged = RoUsage.Update(cn, ref _ROUsageID, _MyContent, _ROID, _Config, _DTS, _UserID, ref _LastChanged); + _LastChanged = RoUsage.Update(cn, ref _ROUsageID, _MyContent, _ROID, _Config, _DTS, _UserID, ref _LastChanged, _MyRODb); MarkOld(); } } [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int rOUsageID, Content myContent, string roid, string config, DateTime dts, string userID, ref byte[] lastChanged) + public static byte[] Update(SqlConnection cn, ref int rOUsageID, Content myContent, string roid, string config, DateTime dts, string userID, ref byte[] lastChanged, RODb myRODb) { if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsage.Update", 0); try @@ -830,6 +885,7 @@ namespace VEPROMS.CSLA.Library 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", myRODb.RODbID); // Output Calculated Columns SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); param_LastChanged.Direction = ParameterDirection.Output; diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/RoUsageInfo.cs b/PROMS/VEPROMS.CSLA.Library/Generated/RoUsageInfo.cs index 188b72bd..4690708e 100644 --- a/PROMS/VEPROMS.CSLA.Library/Generated/RoUsageInfo.cs +++ b/PROMS/VEPROMS.CSLA.Library/Generated/RoUsageInfo.cs @@ -163,6 +163,28 @@ namespace VEPROMS.CSLA.Library 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; + } + } // TODO: Replace base RoUsageInfo.ToString function as necessary /// /// Overrides Base ToString @@ -227,12 +249,24 @@ namespace VEPROMS.CSLA.Library _Config = tmp.Config; _DTS = tmp.DTS; _UserID = tmp.UserID; + if (_RODbID != tmp.RODbID) + { + if (MyRODb != null) MyRODb.RefreshRODbRoUsages(); // 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.RefreshRODbRoUsages(); // Update List for new value _RoUsageInfoExtension.Refresh(this); if(_MyContent != null) { _MyContent.Dispose();// Dispose related value _MyContent = null;// Reset related value } + if(_MyRODb != null) + { + _MyRODb.Dispose();// Dispose related value + _MyRODb = null;// Reset related value + } OnChange();// raise an event } public static void Refresh(ContentRoUsage tmp) @@ -249,12 +283,58 @@ namespace VEPROMS.CSLA.Library _Config = tmp.Config; _DTS = tmp.DTS; _UserID = tmp.UserID; + if (_RODbID != tmp.RODbID) + { + if (MyRODb != null) MyRODb.RefreshRODbRoUsages(); // 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.RefreshRODbRoUsages(); // Update List for new value _RoUsageInfoExtension.Refresh(this); if(_MyContent != null) { _MyContent.Dispose();// Dispose related value _MyContent = null;// Reset related value } + if(_MyRODb != null) + { + _MyRODb.Dispose();// Dispose related value + _MyRODb = null;// Reset related value + } + OnChange();// raise an event + } + public static void Refresh(RODbRoUsage tmp) + { + string key = tmp.ROUsageID.ToString(); + ConvertListToDictionary(); + if (_CacheByPrimaryKey.ContainsKey(key)) + foreach (RoUsageInfo tmpInfo in _CacheByPrimaryKey[key]) + tmpInfo.RefreshFields(tmp); + } + protected virtual void RefreshFields(RODbRoUsage tmp) + { + if (_ContentID != tmp.ContentID) + { + if (MyContent != null) MyContent.RefreshContentRoUsages(); // Update List for old value + _ContentID = tmp.ContentID; // Update the value + } + _MyContent = null; // Reset list so that the next line gets a new list + if (MyContent != null) MyContent.RefreshContentRoUsages(); // Update List for new value + _ROID = tmp.ROID; + _Config = tmp.Config; + _DTS = tmp.DTS; + _UserID = tmp.UserID; + _RoUsageInfoExtension.Refresh(this); + if(_MyContent != null) + { + _MyContent.Dispose();// Dispose related value + _MyContent = null;// Reset related value + } + if(_MyRODb != null) + { + _MyRODb.Dispose();// Dispose related value + _MyRODb = null;// Reset related value + } OnChange();// raise an event } public static RoUsageInfo Get(int rOUsageID) @@ -318,6 +398,7 @@ namespace VEPROMS.CSLA.Library _Config = dr.GetString("Config"); _DTS = dr.GetDateTime("DTS"); _UserID = dr.GetString("UserID"); + _RODbID = dr.GetInt32("RODbID"); } catch (Exception ex) { diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/RoUsageInfoList.cs b/PROMS/VEPROMS.CSLA.Library/Generated/RoUsageInfoList.cs index 7136abd1..a829ce6c 100644 --- a/PROMS/VEPROMS.CSLA.Library/Generated/RoUsageInfoList.cs +++ b/PROMS/VEPROMS.CSLA.Library/Generated/RoUsageInfoList.cs @@ -58,7 +58,7 @@ namespace VEPROMS.CSLA.Library #region Factory Methods public static RoUsageInfoList _RoUsageInfoList = null; /// - /// Return a list of all projects. + /// Return a list of all RoUsageInfo. /// public static RoUsageInfoList Get() { @@ -77,6 +77,13 @@ namespace VEPROMS.CSLA.Library throw new DbCslaException("Error on RoUsageInfoList.Get", ex); } } + /// + /// Reset the list of all RoUsageInfo. + /// + public static void Reset() + { + _RoUsageInfoList = null; + } // TODO: Add alternative gets - //public static RoUsageInfoList Get() //{ @@ -103,6 +110,20 @@ namespace VEPROMS.CSLA.Library throw new DbCslaException("Error on RoUsageInfoList.GetByContentID", ex); } } + public static RoUsageInfoList GetByRODbID(int rODbID) + { + try + { + RoUsageInfoList tmp = DataPortal.Fetch(new RODbIDCriteria(rODbID)); + RoUsageInfo.AddList(tmp); + tmp.AddEvents(); + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on RoUsageInfoList.GetByRODbID", ex); + } + } private RoUsageInfoList() { /* require use of factory methods */ } #endregion @@ -178,6 +199,49 @@ namespace VEPROMS.CSLA.Library } 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}] RoUsageInfoList.DataPortal_FetchRODbID", GetHashCode()); + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getRoUsagesByRODbID"; + cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + IsReadOnly = false; + while (dr.Read()) this.Add(new RoUsageInfo(dr)); + IsReadOnly = true; + } + } + } + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("RoUsageInfoList.DataPortal_FetchRODbID", ex); + throw new DbCslaException("RoUsageInfoList.DataPortal_Fetch", ex); + } + this.RaiseListChangedEvents = true; + } #endregion #region ICustomTypeDescriptor impl public String GetClassName()