1597 lines
		
	
	
		
			46 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			1597 lines
		
	
	
		
			46 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Text;
 | 
						|
using Csla;
 | 
						|
using Csla.Data;
 | 
						|
using Csla.Validation;
 | 
						|
using System.Data.SqlClient;
 | 
						|
using System.Data;
 | 
						|
using Volian.Base.Library;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Xml;
 | 
						|
using System.Xml.Serialization;
 | 
						|
using System.Text.RegularExpressions;
 | 
						|
 | 
						|
namespace VEPROMS.CSLA.Library
 | 
						|
{
 | 
						|
	public partial class ItemInfo
 | 
						|
	{
 | 
						|
		internal string _CheckXML;
 | 
						|
		public string CheckXML
 | 
						|
		{
 | 
						|
			get { return _CheckXML; }
 | 
						|
			set { _CheckXML = value; }
 | 
						|
		}
 | 
						|
		private ConsistencyChecks _MyDifferences;
 | 
						|
		public ConsistencyChecks MyDifferences
 | 
						|
		{
 | 
						|
			get 
 | 
						|
			{
 | 
						|
				if (CheckXML == null)
 | 
						|
				{
 | 
						|
					return null;
 | 
						|
				}
 | 
						|
				if (_MyDifferences == null)
 | 
						|
				{
 | 
						|
					_MyDifferences = GenericSerializer<ConsistencyChecks>.StringDeserialize(CheckXML);
 | 
						|
				}
 | 
						|
				return _MyDifferences; 
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private string _MyDifferenceReasons;
 | 
						|
		public string MyDifferenceReasons
 | 
						|
		{
 | 
						|
			get 
 | 
						|
			{
 | 
						|
				_MyDifferenceReasons = string.Empty;
 | 
						|
				string sep = "";
 | 
						|
				if (MyDifferences != null)
 | 
						|
				{
 | 
						|
					if (MyDifferences.ROConsistency.MyROChecks.Length > 0)
 | 
						|
					{
 | 
						|
						_MyDifferenceReasons += sep + "Reference Object";
 | 
						|
						sep = ", ";
 | 
						|
					}
 | 
						|
					if (MyDifferences.TransitionConsistency.MyTransitionChecks.Length > 0)
 | 
						|
					{
 | 
						|
						_MyDifferenceReasons += sep + "Transition";
 | 
						|
						sep = ", ";
 | 
						|
					}
 | 
						|
					if (MyDifferences.LibDocConsistency.MyLibDocChecks.Length > 0)
 | 
						|
					{
 | 
						|
						_MyDifferenceReasons += sep + "Library Document";
 | 
						|
					}
 | 
						|
				}
 | 
						|
				if (_MyDifferenceReasons == string.Empty)
 | 
						|
					_MyDifferenceReasons = "No Differences Found";
 | 
						|
				return _MyDifferenceReasons; 
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private string _MyDifferencesText;
 | 
						|
		public string MyDifferencesText
 | 
						|
		{
 | 
						|
			get 
 | 
						|
			{
 | 
						|
				_MyDifferencesText = string.Empty;
 | 
						|
				StringBuilder sb = new StringBuilder();
 | 
						|
				if (MyDifferences != null)
 | 
						|
				{
 | 
						|
					if (MyDifferences.ROConsistency.MyROChecks.Length > 0)
 | 
						|
					{
 | 
						|
						sb.Append("Reference Objects Differences:\r\n");
 | 
						|
						ROFSTLookup lu = MyDocVersion.DocVersionAssociations[0].MyROFst.ROFSTLookup;
 | 
						|
						foreach (ROCheck roc in MyDifferences.ROConsistency.MyROChecks)
 | 
						|
						{
 | 
						|
							ROFSTLookup.rochild rocc = lu.GetRoChild12(roc.ROID);
 | 
						|
							if(rocc.type == 1)
 | 
						|
								sb.Append(string.Format("     {0} - Old Value: {1} - New Value: {2}\r\n", lu.GetROTitle(roc.ROID), roc.OldROValue, roc.ROValue));
 | 
						|
							else
 | 
						|
								sb.Append(string.Format("     {0} - Value has changed.\r\n", lu.GetROTitle(roc.ROID)));
 | 
						|
						}
 | 
						|
					}
 | 
						|
//jcb
 | 
						|
					if (MyDifferences.TransitionConsistency.MyTransitionChecks.Length > 0)
 | 
						|
					{
 | 
						|
						if (sb.Length > 0)
 | 
						|
							sb.AppendLine();
 | 
						|
						sb.Append("Transition Differences:\r\n");
 | 
						|
						foreach (TransitionCheck tc in MyDifferences.TransitionConsistency.MyTransitionChecks)
 | 
						|
						{
 | 
						|
							TransitionInfo tmp = TransitionInfo.Get(tc.TransitionID);
 | 
						|
							string tt = tmp.MyContent.ContentItems[0].Path;
 | 
						|
							string ov = ItemInfo.ConvertToDisplayText(tc.OldTransitionValue);
 | 
						|
							string nv = ItemInfo.ConvertToDisplayText(tc.TransitionValue);
 | 
						|
							sb.Append(string.Format("     From {0}\r\n", tt));
 | 
						|
							sb.Append(string.Format("          Old To: {0}\r\n", ov));
 | 
						|
							sb.Append(string.Format("          New To: {0}\r\n", nv));
 | 
						|
						}
 | 
						|
					}
 | 
						|
//end jcb
 | 
						|
					if (MyDifferences.LibDocConsistency.MyLibDocChecks.Length > 0)
 | 
						|
					{
 | 
						|
						if (sb.Length > 0)
 | 
						|
							sb.AppendLine();
 | 
						|
						sb.Append("Library Document Differences:\r\n");
 | 
						|
						foreach (LibDocCheck ldc in MyDifferences.LibDocConsistency.MyLibDocChecks)
 | 
						|
						{
 | 
						|
							DocumentInfo di = DocumentInfo.Get(ldc.DocID);
 | 
						|
							string libdoc = string.Format("     {0} - Old Date: {1} - New Date: {2}\r\n", di.DocumentTitle, ldc.OldDocDate.ToString(), ldc.DocDate.ToString());
 | 
						|
							sb.Append(libdoc);
 | 
						|
						}
 | 
						|
					}
 | 
						|
					_MyDifferencesText = sb.ToString();
 | 
						|
				}
 | 
						|
				if (_MyDifferencesText == string.Empty)
 | 
						|
					_MyDifferencesText = MyDifferenceReasons;
 | 
						|
				return _MyDifferencesText; 
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private bool _IsSelected = false;
 | 
						|
		public bool IsSelected
 | 
						|
		{
 | 
						|
			get { return _IsSelected; }
 | 
						|
			set { _IsSelected = value; }
 | 
						|
		}
 | 
						|
	}
 | 
						|
	public delegate void ItemInfoListCCEvent(object sender, ItemInfoListCCEventArgs args);
 | 
						|
	public class ItemInfoListCCEventArgs : EventArgs
 | 
						|
	{
 | 
						|
		private ProcedureInfo _MyProcedure;
 | 
						|
 | 
						|
		public ProcedureInfo MyProcedure
 | 
						|
		{
 | 
						|
			get { return _MyProcedure; }
 | 
						|
			set { _MyProcedure = value; }
 | 
						|
		}
 | 
						|
		private int _MyCount;
 | 
						|
 | 
						|
		public int MyCount
 | 
						|
		{
 | 
						|
			get { return _MyCount; }
 | 
						|
			set { _MyCount = value; }
 | 
						|
		}
 | 
						|
		public ItemInfoListCCEventArgs(ProcedureInfo myProcedure, int myCount)
 | 
						|
		{
 | 
						|
			_MyProcedure = myProcedure;
 | 
						|
			_MyCount = myCount;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	public partial class ItemInfoList
 | 
						|
	{
 | 
						|
		public static event ItemInfoListCCEvent ConsistencyCheckUpdated;
 | 
						|
		private static void OnConsistencyCheckUpdated(object sender, ItemInfoListCCEventArgs args)
 | 
						|
		{
 | 
						|
			if (ConsistencyCheckUpdated != null)
 | 
						|
				ConsistencyCheckUpdated(sender, args);
 | 
						|
		}
 | 
						|
		public static ItemInfoList GetMoreProcedures(List<ProcedureInfo> procs)
 | 
						|
		{
 | 
						|
			StringBuilder sb = new StringBuilder("<Items>");
 | 
						|
			int count = 1;
 | 
						|
			foreach (ProcedureInfo pi in procs)
 | 
						|
			{
 | 
						|
				OnConsistencyCheckUpdated(pi, new ItemInfoListCCEventArgs(pi, count++));
 | 
						|
				string cc = RevisionInfo.BuildRevisionChecks(pi);
 | 
						|
				cc = Regex.Replace(cc, @"\<\?.*?\?\>", "");
 | 
						|
				sb.Append(cc);
 | 
						|
			}
 | 
						|
			sb.Append("</Items>");
 | 
						|
			OnConsistencyCheckUpdated(null, new ItemInfoListCCEventArgs(null, -1));
 | 
						|
			try
 | 
						|
			{
 | 
						|
				ItemInfoList tmp = DataPortal.Fetch<ItemInfoList>(new ItemListConsistencyCheckCriteria(procs[0].MyDocVersion.VersionID, sb.ToString()));
 | 
						|
				ItemInfo.AddList(tmp);
 | 
						|
				tmp.AddEvents();
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on ItemInfoList.GetMoreProcedures", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		[Serializable()]
 | 
						|
		private class ItemListConsistencyCheckCriteria
 | 
						|
		{
 | 
						|
			private int _DocVersionID;
 | 
						|
			public int DocVersionID
 | 
						|
			{
 | 
						|
				get { return _DocVersionID; }
 | 
						|
				set { _DocVersionID = value; }
 | 
						|
			}
 | 
						|
			private string _CheckXML;
 | 
						|
			public string CheckXML
 | 
						|
			{
 | 
						|
				get { return _CheckXML; }
 | 
						|
				set { _CheckXML = value; }
 | 
						|
			}
 | 
						|
			public ItemListConsistencyCheckCriteria(int docVersionID, string checkXML)
 | 
						|
			{
 | 
						|
				_DocVersionID = docVersionID;
 | 
						|
				_CheckXML = checkXML;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(ItemListConsistencyCheckCriteria criteria)
 | 
						|
		{
 | 
						|
			this.RaiseListChangedEvents = false;
 | 
						|
			try
 | 
						|
			{
 | 
						|
				using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
						|
				{
 | 
						|
					using (SqlCommand cm = cn.CreateCommand())
 | 
						|
					{
 | 
						|
						cm.CommandType = CommandType.StoredProcedure;
 | 
						|
						cm.CommandText = "vesp_GetConsistencyCheckProcedures";
 | 
						|
						cm.Parameters.AddWithValue("@DocVersionID", criteria.DocVersionID);
 | 
						|
						cm.Parameters.AddWithValue("@MyXml", criteria.CheckXML);
 | 
						|
						cm.CommandTimeout = Database.DefaultTimeout;
 | 
						|
						using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
 | 
						|
						{
 | 
						|
							while (dr.Read())
 | 
						|
							{
 | 
						|
								ItemInfo itemInfo = null;
 | 
						|
								int itemType = dr.GetInt32("Type") / 10000;
 | 
						|
								switch (itemType)
 | 
						|
								{
 | 
						|
									case 0:
 | 
						|
										itemInfo = new ProcedureInfo(dr);
 | 
						|
										break;
 | 
						|
									case 1:
 | 
						|
										itemInfo = new SectionInfo(dr);
 | 
						|
										break;
 | 
						|
									default:
 | 
						|
										itemInfo = new StepInfo(dr);
 | 
						|
										break;
 | 
						|
								}
 | 
						|
								itemInfo.AddContent(dr);
 | 
						|
								itemInfo.CheckXML = dr.GetString("ChkXml");
 | 
						|
								IsReadOnly = false;
 | 
						|
								this.Add(itemInfo);
 | 
						|
								IsReadOnly = true;
 | 
						|
							}
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				Database.LogException("ItemInfoList.DataPortal_Fetch", ex);
 | 
						|
				throw new DbCslaException("ItemInfoList.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
			this.RaiseListChangedEvents = true;
 | 
						|
		}
 | 
						|
		//new for all procs
 | 
						|
		public static ItemInfoList GetAllInconsistencies(int docVersionID)
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				ItemInfoList tmp = DataPortal.Fetch<ItemInfoList>(new ItemListAllInConsistenciesCriteria(docVersionID));
 | 
						|
				ItemInfo.AddList(tmp);
 | 
						|
				tmp.AddEvents();
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on ItemInfoList.GetAllInconsistencies", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		[Serializable()]
 | 
						|
		private class ItemListAllInConsistenciesCriteria
 | 
						|
		{
 | 
						|
			private int _DocVersionID;
 | 
						|
			public int DocVersionID
 | 
						|
			{
 | 
						|
				get { return _DocVersionID; }
 | 
						|
				set { _DocVersionID = value; }
 | 
						|
			}
 | 
						|
			public ItemListAllInConsistenciesCriteria(int docVersionID)
 | 
						|
			{
 | 
						|
				_DocVersionID = docVersionID;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(ItemListAllInConsistenciesCriteria criteria)
 | 
						|
		{
 | 
						|
			this.RaiseListChangedEvents = false;
 | 
						|
			try
 | 
						|
			{
 | 
						|
				using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
						|
				{
 | 
						|
					using (SqlCommand cm = cn.CreateCommand())
 | 
						|
					{
 | 
						|
						cm.CommandType = CommandType.StoredProcedure;
 | 
						|
						cm.CommandText = "vesp_GetAllConsistencyIssues";
 | 
						|
						cm.Parameters.AddWithValue("@DocVersionID", criteria.DocVersionID);
 | 
						|
						cm.CommandTimeout = Database.DefaultTimeout;
 | 
						|
						using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
 | 
						|
						{
 | 
						|
							while (dr.Read())
 | 
						|
							{
 | 
						|
								ItemInfo itemInfo = null;
 | 
						|
								int itemType = dr.GetInt32("Type") / 10000;
 | 
						|
								switch (itemType)
 | 
						|
								{
 | 
						|
									case 0:
 | 
						|
										itemInfo = new ProcedureInfo(dr);
 | 
						|
										break;
 | 
						|
									case 1:
 | 
						|
										itemInfo = new SectionInfo(dr);
 | 
						|
										break;
 | 
						|
									default:
 | 
						|
										itemInfo = new StepInfo(dr);
 | 
						|
										break;
 | 
						|
								}
 | 
						|
								itemInfo.AddContent(dr);
 | 
						|
								itemInfo.CheckXML = dr.GetString("ChkXml");
 | 
						|
								IsReadOnly = false;
 | 
						|
								this.Add(itemInfo);
 | 
						|
								IsReadOnly = true;
 | 
						|
							}
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				Database.LogException("ItemInfoList.DataPortal_Fetch", ex);
 | 
						|
				throw new DbCslaException("ItemInfoList.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
			this.RaiseListChangedEvents = true;
 | 
						|
		}
 | 
						|
		//end new for all procs
 | 
						|
	}
 | 
						|
	public partial class Revision
 | 
						|
	{
 | 
						|
		private RevisionConfig _MyConfig;
 | 
						|
		public RevisionConfig MyConfig
 | 
						|
		{
 | 
						|
			get 
 | 
						|
			{
 | 
						|
				if (_MyConfig == null)
 | 
						|
					_MyConfig = new RevisionConfig(this);
 | 
						|
				return _MyConfig; 
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public static Revision GetByItemIDAndRevisionNumber(int itemID, string revisionNumber)
 | 
						|
		{
 | 
						|
			if (!CanGetObject())
 | 
						|
				throw new System.Security.SecurityException("User not authorized to view a Revision");
 | 
						|
			try
 | 
						|
			{
 | 
						|
				//Revision tmp = GetCachedByPrimaryKey(revisionID);
 | 
						|
				//if (tmp == null)
 | 
						|
				//{
 | 
						|
					Revision tmp = DataPortal.Fetch<Revision>(new ItemRevisionNumberCriteria(itemID, revisionNumber));
 | 
						|
				//  AddToCache(tmp);
 | 
						|
				//}
 | 
						|
				if (tmp.ErrorMessage == "No Record Found")
 | 
						|
				{
 | 
						|
					tmp.Dispose(); // Clean-up Revision
 | 
						|
					tmp = null;
 | 
						|
				}
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on Revision.GetByItemIDAndRevisionNumber", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		[Serializable()]
 | 
						|
		protected class ItemRevisionNumberCriteria
 | 
						|
		{
 | 
						|
			private int _ItemID;
 | 
						|
			public int ItemID
 | 
						|
			{ get { return _ItemID; } }
 | 
						|
			private string _RevisionNumber;
 | 
						|
			public string RevisionNumber
 | 
						|
			{ get { return _RevisionNumber; } }
 | 
						|
			public ItemRevisionNumberCriteria(int itemID, string revisionNumber)
 | 
						|
			{
 | 
						|
				_ItemID = itemID;
 | 
						|
				_RevisionNumber = revisionNumber;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(ItemRevisionNumberCriteria criteria)
 | 
						|
		{
 | 
						|
			if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Revision.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 = "getRevisionByItemIDandRevisionNumber";
 | 
						|
						cm.Parameters.AddWithValue("@ItemID", criteria.ItemID);
 | 
						|
						cm.Parameters.AddWithValue("@RevisionNumber", criteria.RevisionNumber);
 | 
						|
						cm.CommandTimeout = Database.DefaultTimeout;
 | 
						|
						using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
 | 
						|
						{
 | 
						|
							if (!dr.Read())
 | 
						|
							{
 | 
						|
								_ErrorMessage = "No Record Found";
 | 
						|
								return;
 | 
						|
							}
 | 
						|
							ReadData(dr);
 | 
						|
							// load child objects
 | 
						|
							dr.NextResult();
 | 
						|
							_RevisionChecks = RevisionChecks.Get(dr);
 | 
						|
							// load child objects
 | 
						|
							dr.NextResult();
 | 
						|
							_RevisionVersions = RevisionVersions.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("Revision.DataPortal_Fetch", ex);
 | 
						|
				_ErrorMessage = ex.Message;
 | 
						|
				throw new DbCslaException("Revision.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		//jcb 20120625
 | 
						|
		public static Revision GetByItemIDAndRevisionNumberAndUnitID(int itemID, string revisionNumber, int unitID)
 | 
						|
		{
 | 
						|
			if (!CanGetObject())
 | 
						|
				throw new System.Security.SecurityException("User not authorized to view a Revision");
 | 
						|
			try
 | 
						|
			{
 | 
						|
				//Revision tmp = GetCachedByPrimaryKey(revisionID);
 | 
						|
				//if (tmp == null)
 | 
						|
				//{
 | 
						|
				Revision tmp = DataPortal.Fetch<Revision>(new UnitItemRevisionNumberCriteria(itemID, revisionNumber, unitID));
 | 
						|
				//  AddToCache(tmp);
 | 
						|
				//}
 | 
						|
				if (tmp.ErrorMessage == "No Record Found")
 | 
						|
				{
 | 
						|
					tmp.Dispose(); // Clean-up Revision
 | 
						|
					tmp = null;
 | 
						|
				}
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on Revision.GetByItemIDAndRevisionNumber", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		[Serializable()]
 | 
						|
		protected class UnitItemRevisionNumberCriteria
 | 
						|
		{
 | 
						|
			private int _ItemID;
 | 
						|
			public int ItemID
 | 
						|
			{ get { return _ItemID; } }
 | 
						|
			private string _RevisionNumber;
 | 
						|
			public string RevisionNumber
 | 
						|
			{ get { return _RevisionNumber; } }
 | 
						|
			private int _UnitID;
 | 
						|
			public int UnitID
 | 
						|
			{ get { return _UnitID; } }
 | 
						|
			public UnitItemRevisionNumberCriteria(int itemID, string revisionNumber, int unitID)
 | 
						|
			{
 | 
						|
				_ItemID = itemID;
 | 
						|
				_RevisionNumber = revisionNumber;
 | 
						|
				_UnitID = unitID;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(UnitItemRevisionNumberCriteria criteria)
 | 
						|
		{
 | 
						|
			if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Revision.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 = "getRevisionByItemIDandRevisionNumberAndUnitID";
 | 
						|
						cm.Parameters.AddWithValue("@ItemID", criteria.ItemID);
 | 
						|
						cm.Parameters.AddWithValue("@RevisionNumber", criteria.RevisionNumber);
 | 
						|
						cm.Parameters.AddWithValue("@UnitID", criteria.UnitID);
 | 
						|
						using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
 | 
						|
						{
 | 
						|
							if (!dr.Read())
 | 
						|
							{
 | 
						|
								_ErrorMessage = "No Record Found";
 | 
						|
								return;
 | 
						|
							}
 | 
						|
							ReadData(dr);
 | 
						|
							// load child objects
 | 
						|
							dr.NextResult();
 | 
						|
							_RevisionChecks = RevisionChecks.Get(dr);
 | 
						|
							// load child objects
 | 
						|
							dr.NextResult();
 | 
						|
							_RevisionVersions = RevisionVersions.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("Revision.DataPortal_Fetch", ex);
 | 
						|
				_ErrorMessage = ex.Message;
 | 
						|
				throw new DbCslaException("Revision.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		//end jcb 20120625
 | 
						|
	}
 | 
						|
	public partial class RevisionInfoList
 | 
						|
	{
 | 
						|
		public static RevisionInfoList GetByItemID(int itemID)
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				//if (_RevisionInfoList != null)
 | 
						|
				//  return _RevisionInfoList;
 | 
						|
				RevisionInfoList tmp = DataPortal.Fetch<RevisionInfoList>(new ItemCriteria(itemID));
 | 
						|
				RevisionInfo.AddList(tmp);
 | 
						|
				tmp.AddEvents();
 | 
						|
				//_RevisionInfoList = tmp;
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on RevisionInfoList.GetByItemID", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		[Serializable()]
 | 
						|
		protected class ItemCriteria
 | 
						|
		{
 | 
						|
			private int _ItemID;
 | 
						|
			public int ItemID
 | 
						|
			{ get { return _ItemID; } }
 | 
						|
			public ItemCriteria(int itemID)
 | 
						|
			{
 | 
						|
				_ItemID = itemID;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(ItemCriteria criteria)
 | 
						|
		{
 | 
						|
			this.RaiseListChangedEvents = false;
 | 
						|
			if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionInfoList.DataPortal_Fetch", GetHashCode());
 | 
						|
			try
 | 
						|
			{
 | 
						|
				using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
						|
				{
 | 
						|
					using (SqlCommand cm = cn.CreateCommand())
 | 
						|
					{
 | 
						|
						cm.CommandType = CommandType.StoredProcedure;
 | 
						|
						cm.CommandText = "getRevisionsByItemID";
 | 
						|
						cm.Parameters.AddWithValue("@ItemID", criteria.ItemID);
 | 
						|
						cm.CommandTimeout = Database.DefaultTimeout;
 | 
						|
						using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
 | 
						|
						{
 | 
						|
							IsReadOnly = false;
 | 
						|
							while (dr.Read()) this.Add(new RevisionInfo(dr));
 | 
						|
							IsReadOnly = true;
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				if (_MyLog.IsErrorEnabled) _MyLog.Error("RevisionInfoList.DataPortal_Fetch", ex);
 | 
						|
				throw new DbCslaException("RevisionInfoList.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
			this.RaiseListChangedEvents = true;
 | 
						|
		}
 | 
						|
		//jcb 20120626
 | 
						|
		public static RevisionInfoList GetByItemIDandUnitID(int itemID, int unitID)
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				//if (_RevisionInfoList != null)
 | 
						|
				//  return _RevisionInfoList;
 | 
						|
				RevisionInfoList tmp = DataPortal.Fetch<RevisionInfoList>(new ItemUnitCriteria(itemID, unitID));
 | 
						|
				RevisionInfo.AddList(tmp);
 | 
						|
				tmp.AddEvents();
 | 
						|
				//_RevisionInfoList = tmp;
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on RevisionInfoList.GetByItemID", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		[Serializable()]
 | 
						|
		protected class ItemUnitCriteria
 | 
						|
		{
 | 
						|
			private int _ItemID;
 | 
						|
			public int ItemID
 | 
						|
			{ get { return _ItemID; } }
 | 
						|
			private int _UnitID;
 | 
						|
			public int UnitID
 | 
						|
			{ get { return _UnitID; } }
 | 
						|
			public ItemUnitCriteria(int itemID, int unitID)
 | 
						|
			{
 | 
						|
				_ItemID = itemID;
 | 
						|
				_UnitID = unitID;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(ItemUnitCriteria criteria)
 | 
						|
		{
 | 
						|
			this.RaiseListChangedEvents = false;
 | 
						|
			if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionInfoList.DataPortal_Fetch", GetHashCode());
 | 
						|
			try
 | 
						|
			{
 | 
						|
				using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
						|
				{
 | 
						|
					using (SqlCommand cm = cn.CreateCommand())
 | 
						|
					{
 | 
						|
						cm.CommandType = CommandType.StoredProcedure;
 | 
						|
						cm.CommandText = "getRevisionsByItemIDandUnitID";
 | 
						|
						cm.Parameters.AddWithValue("@ItemID", criteria.ItemID);
 | 
						|
						cm.Parameters.AddWithValue("@UnitID", criteria.UnitID);
 | 
						|
						using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
 | 
						|
						{
 | 
						|
							IsReadOnly = false;
 | 
						|
							while (dr.Read()) this.Add(new RevisionInfo(dr));
 | 
						|
							IsReadOnly = true;
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				if (_MyLog.IsErrorEnabled) _MyLog.Error("RevisionInfoList.DataPortal_Fetch", ex);
 | 
						|
				throw new DbCslaException("RevisionInfoList.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
			this.RaiseListChangedEvents = true;
 | 
						|
		}
 | 
						|
		//end jcb 20120626
 | 
						|
	}
 | 
						|
	public partial class RevisionInfo
 | 
						|
	{
 | 
						|
		private RevisionConfig _MyConfig;
 | 
						|
		public RevisionConfig MyConfig
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				if (_MyConfig == null)
 | 
						|
					_MyConfig = new RevisionConfig(this);
 | 
						|
				return _MyConfig;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#region new bozo
 | 
						|
		[Serializable()]
 | 
						|
		protected class ItemCriteria
 | 
						|
		{
 | 
						|
			private int _ItemID;
 | 
						|
			public int ItemID
 | 
						|
			{ get { return _ItemID; } }
 | 
						|
			public ItemCriteria(int itemID)
 | 
						|
			{
 | 
						|
				_ItemID = itemID;
 | 
						|
			}
 | 
						|
			private int _UnitID = 0;
 | 
						|
			public int UnitID
 | 
						|
			{
 | 
						|
				get{return _UnitID;}
 | 
						|
				set{_UnitID = value;}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		[Serializable()]
 | 
						|
		protected class CurrentItemCriteria : ItemCriteria
 | 
						|
		{
 | 
						|
			public CurrentItemCriteria(int itemID)
 | 
						|
				: base(itemID)
 | 
						|
			{
 | 
						|
			}
 | 
						|
		}
 | 
						|
		[Serializable()]
 | 
						|
		protected class CurrentItemUnitCriteria : ItemCriteria
 | 
						|
		{
 | 
						|
			public CurrentItemUnitCriteria(int itemID, int unitID)
 | 
						|
				: base(itemID)
 | 
						|
			{
 | 
						|
				UnitID = unitID;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		[Serializable()]
 | 
						|
		protected class PreviousItemCriteria : ItemCriteria
 | 
						|
		{
 | 
						|
			public PreviousItemCriteria(int itemID)
 | 
						|
				: base(itemID)
 | 
						|
			{
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public static RevisionInfo GetCurrentByItemID(int itemID)
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				//RevisionInfo tmp = GetCachedByPrimaryKey(revisionID);
 | 
						|
				//if (tmp == null)
 | 
						|
				//{
 | 
						|
				//  tmp = DataPortal.Fetch<RevisionInfo>(new PKCriteria(revisionID));
 | 
						|
				//  AddToCache(tmp);
 | 
						|
				//}
 | 
						|
				RevisionInfo tmp = DataPortal.Fetch<RevisionInfo>(new CurrentItemCriteria(itemID));
 | 
						|
				if (tmp.ErrorMessage == "No Record Found")
 | 
						|
				{
 | 
						|
					tmp.Dispose(); // Clean-up RevisionInfo
 | 
						|
					tmp = null;
 | 
						|
				}
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on RevisionInfo.GetCurrentByItemID", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public static RevisionInfo GetCurrentByItemIDandUnitID(int itemID, int unitID)
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				RevisionInfo tmp = DataPortal.Fetch<RevisionInfo>(new CurrentItemUnitCriteria(itemID, unitID));
 | 
						|
				if (tmp.ErrorMessage == "No Record Found")
 | 
						|
				{
 | 
						|
					tmp.Dispose(); // Clean-up RevisionInfo
 | 
						|
					tmp = null;
 | 
						|
				}
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on RevisionInfo.GetCurrentByItemID", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public static RevisionInfo GetPreviousByItemID(int itemID)
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				//RevisionInfo tmp = GetCachedByPrimaryKey(revisionID);
 | 
						|
				//if (tmp == null)
 | 
						|
				//{
 | 
						|
				//  tmp = DataPortal.Fetch<RevisionInfo>(new PKCriteria(revisionID));
 | 
						|
				//  AddToCache(tmp);
 | 
						|
				//}
 | 
						|
				RevisionInfo tmp = DataPortal.Fetch<RevisionInfo>(new PreviousItemCriteria(itemID));
 | 
						|
				if (tmp.ErrorMessage == "No Record Found")
 | 
						|
				{
 | 
						|
					tmp.Dispose(); // Clean-up RevisionInfo
 | 
						|
					tmp = null;
 | 
						|
				}
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on RevisionInfo.GetPreviousByItemID", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(CurrentItemCriteria criteria)
 | 
						|
		{
 | 
						|
			if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionInfo.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 = "getCurrentRevisionByItemID";
 | 
						|
						cm.Parameters.AddWithValue("@ItemID", criteria.ItemID);
 | 
						|
						cm.CommandTimeout = Database.DefaultTimeout;
 | 
						|
						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("RevisionInfo.DataPortal_Fetch", ex);
 | 
						|
				_ErrorMessage = ex.Message;
 | 
						|
				throw new DbCslaException("RevisionInfo.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(PreviousItemCriteria criteria)
 | 
						|
		{
 | 
						|
			if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionInfo.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 = "getPreviousRevisionByItemID";
 | 
						|
						cm.Parameters.AddWithValue("@ItemID", criteria.ItemID);
 | 
						|
						cm.CommandTimeout = Database.DefaultTimeout;
 | 
						|
						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("RevisionInfo.DataPortal_Fetch", ex);
 | 
						|
				_ErrorMessage = ex.Message;
 | 
						|
				throw new DbCslaException("RevisionInfo.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(CurrentItemUnitCriteria criteria)
 | 
						|
		{
 | 
						|
			if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionInfo.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 = "getCurrentRevisionByItemIDandUnitID";
 | 
						|
						cm.Parameters.AddWithValue("@ItemID", criteria.ItemID);
 | 
						|
						cm.Parameters.AddWithValue("@UnitID", criteria.UnitID);
 | 
						|
						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("RevisionInfo.DataPortal_Fetch", ex);
 | 
						|
				_ErrorMessage = ex.Message;
 | 
						|
				throw new DbCslaException("RevisionInfo.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
		//jcb stuff
 | 
						|
		public VersionInfo LatestVersion
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				if (this.RevisionVersions.Count == 0) return null;
 | 
						|
				VersionInfo latest = this.RevisionVersions[0];
 | 
						|
				foreach (VersionInfo vi in this.RevisionVersions)
 | 
						|
				{
 | 
						|
					if (vi.DTS > latest.DTS)
 | 
						|
						latest = vi;
 | 
						|
				}
 | 
						|
				return latest;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public override string ToString()
 | 
						|
		{
 | 
						|
			return string.Format("{0} Revision {1} on {2}", LatestVersion.MyStage.Name, this.RevisionNumber, this.RevisionDate.Value.ToShortDateString());
 | 
						|
		}
 | 
						|
		public static string BuildRevisionChecks(ProcedureInfo proc)
 | 
						|
		{
 | 
						|
			ConsistencyChecks cc = new ConsistencyChecks();
 | 
						|
			cc.ItemID = proc.ItemID;
 | 
						|
			BuildROChecks(cc, proc);
 | 
						|
			BuildTransitionFromChecks(cc, proc);
 | 
						|
			BuildTransitionToChecks(cc, proc);
 | 
						|
			BuildLibDocChecks(cc, proc);
 | 
						|
			return cc.ToString().Replace("OldDocDate=\"0001-01-01T00:00:00\"","");
 | 
						|
		}
 | 
						|
		//end jcb stuff
 | 
						|
		private static void BuildROChecks(ConsistencyChecks cc, ProcedureInfo proc)
 | 
						|
		{
 | 
						|
			//grab all roids from rousages for this proc and children
 | 
						|
			List<string> myROIDs = new List<string>();
 | 
						|
			//_MyTimer.ActiveProcess = "Build Distinct RO Usage List";
 | 
						|
			using (RoUsageInfoList myList = RoUsageInfoList.GetAllForProcedure(proc))
 | 
						|
				foreach (RoUsageInfo myRO in myList)
 | 
						|
					if (!myROIDs.Contains(myRO.ShortROID))
 | 
						|
						myROIDs.Add(myRO.ShortROID);
 | 
						|
			using (DROUsageInfoList myList = DROUsageInfoList.GetAllForProcedure(proc))
 | 
						|
				foreach (DROUsageInfo myRO in myList)
 | 
						|
					if (!myROIDs.Contains(myRO.ROID.ToUpper()))
 | 
						|
						myROIDs.Add(myRO.ROID.ToUpper());
 | 
						|
			//create checkro record for each roid
 | 
						|
			//_MyTimer.ActiveProcess = "Get DocVersionInfo";
 | 
						|
//			DocVersionInfo dbi = proc.ActiveParent as DocVersionInfo;
 | 
						|
			DocVersionInfo dvi = proc.MyDocVersion;
 | 
						|
			//_MyTimer.ActiveProcess = "Get MyROFst";
 | 
						|
			ROFstInfo rofst = ROFstInfo.GetJustROFst(dvi.DocVersionAssociations[0].ROFstID);
 | 
						|
			//_MyTimer.ActiveProcess = "Get ROFst Lookup";
 | 
						|
			rofst.docVer = dvi;
 | 
						|
			ROFSTLookup lookup = rofst.ROFSTLookup;
 | 
						|
			//_MyTimer.ActiveProcess = "Populating RevisionChecksXML table";
 | 
						|
			cc.ROConsistency.ROFstDate = rofst.DTS;
 | 
						|
			foreach (string s in myROIDs)
 | 
						|
				cc.AddROCheck(s, ItemInfo.ConvertToDisplayText(lookup.GetRoValue(s)));
 | 
						|
			//_MyTimer.ActiveProcess = "External";
 | 
						|
		}
 | 
						|
		private static void BuildTransitionFromChecks(ConsistencyChecks cc, ProcedureInfo proc)
 | 
						|
		{
 | 
						|
			using (TransitionInfoList myList = TransitionInfoList.GetAllForProcedure(proc, true))
 | 
						|
				foreach (TransitionInfo myTI in myList)
 | 
						|
				{
 | 
						|
					//\v <START]\v0 EMG\u160?ES\u8209?02, REACTOR TRIP RESPONSE, Step 14\v #Link:Transition:0 1 102[END>\v0
 | 
						|
					string lookFor = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* ([^#]*?)(\\[^v'? \\]+)*\\v(\\[^v \\]+)* #Link:Transition[^:]*?:{0} {1}( [0-9]*){{1,2}}\[END>", myTI.TranType, myTI.TransitionID);
 | 
						|
					//string lookFor = string.Format(@"<START\]\\v0 ([^#]*?)\\v #Link:Transition[^:]*?:{0} {1} [0-9]*\[END>", tran.TranType, tran.TransitionID);
 | 
						|
					Match m = Regex.Match(myTI.ContentText, lookFor);
 | 
						|
					if (m != null && m.Groups.Count > 1)
 | 
						|
					{
 | 
						|
						System.Text.RegularExpressions.Group g = m.Groups[3];
 | 
						|
						cc.AddTransitionFromCheck(myTI.TransitionID, g.ToString());
 | 
						|
					}
 | 
						|
					//_MyTimer.ActiveProcess = "get from path";
 | 
						|
					//string myPath = myTI.MyItemToID.ShortPath;
 | 
						|
				}
 | 
						|
		}
 | 
						|
		private static void BuildTransitionToChecks(ConsistencyChecks cc, ProcedureInfo proc)
 | 
						|
		{
 | 
						|
			using (TransitionInfoList myList = TransitionInfoList.GetAllForProcedure(proc, false))
 | 
						|
				foreach (TransitionInfo myTI in myList)
 | 
						|
				{
 | 
						|
					string lookFor = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* ([^#]*?)(\\[^v'? \\]+)*\\v(\\[^v \\]+)* #Link:Transition[^:]*?:{0} {1}( [0-9]*){{1,2}}\[END>", myTI.TranType, myTI.TransitionID);
 | 
						|
					//string lookFor = string.Format(@"<START\]\\v0 ([^#]*?)\\v #Link:Transition[^:]*?:{0} {1} [0-9]*\[END>", tran.TranType, tran.TransitionID);
 | 
						|
					Match m = Regex.Match(myTI.ContentText, lookFor);
 | 
						|
					if (m != null && m.Groups.Count > 1)
 | 
						|
					{
 | 
						|
						System.Text.RegularExpressions.Group g = m.Groups[3];
 | 
						|
						cc.AddTransitionToCheck(myTI.TransitionID, g.ToString());
 | 
						|
					}
 | 
						|
				}
 | 
						|
		}
 | 
						|
		private static void BuildLibDocChecks(ConsistencyChecks cc, ProcedureInfo proc)
 | 
						|
		{
 | 
						|
			using (DocumentInfoList myList = DocumentInfoList.GetAllForProcedure(proc))
 | 
						|
				foreach (DocumentInfo myDI in myList)
 | 
						|
					cc.AddLibDocCheck(myDI.DocID, myDI.DTS);
 | 
						|
		}
 | 
						|
		private static Volian.Base.Library.VlnTimer _MyTimer;
 | 
						|
		public static void SetupTimer()
 | 
						|
		{
 | 
						|
			_MyTimer = new Volian.Base.Library.VlnTimer();
 | 
						|
		}
 | 
						|
		public static void ShowTimer()
 | 
						|
		{
 | 
						|
			_MyTimer.ShowElapsedTimes("BuildROChecks");
 | 
						|
		}
 | 
						|
	}
 | 
						|
	public partial class RoUsageInfoList
 | 
						|
	{
 | 
						|
		[Serializable()]
 | 
						|
		private class AllForProcedureCriteria
 | 
						|
		{
 | 
						|
			public AllForProcedureCriteria(int itemID)
 | 
						|
			{
 | 
						|
				_ItemID = itemID;
 | 
						|
			}
 | 
						|
			private int _ItemID;
 | 
						|
			public int ItemID
 | 
						|
			{
 | 
						|
				get { return _ItemID; }
 | 
						|
				set { _ItemID = value; }
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public static RoUsageInfoList GetAllForProcedure(ProcedureInfo proc)
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				RoUsageInfoList tmp = DataPortal.Fetch<RoUsageInfoList>(new AllForProcedureCriteria(proc.ItemID));
 | 
						|
				RoUsageInfo.AddList(tmp);
 | 
						|
				tmp.AddEvents();
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on ROUsageInfoList.GetAllForProcedure", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(AllForProcedureCriteria criteria)
 | 
						|
		{
 | 
						|
			this.RaiseListChangedEvents = false;
 | 
						|
			if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROUsageInfoList.DataPortal_FetchAllForProc", GetHashCode());
 | 
						|
			try
 | 
						|
			{
 | 
						|
				using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
						|
				{
 | 
						|
					using (SqlCommand cm = cn.CreateCommand())
 | 
						|
					{
 | 
						|
						cm.CommandType = CommandType.StoredProcedure;
 | 
						|
						cm.CommandText = "getRoUsagesForProc";
 | 
						|
						cm.Parameters.AddWithValue("@ItemID", criteria.ItemID);
 | 
						|
 | 
						|
						cm.CommandTimeout = Database.DefaultTimeout;
 | 
						|
						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_FetchAllForProc", ex);
 | 
						|
				throw new DbCslaException("ROUsageInfoList.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
			this.RaiseListChangedEvents = true;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	public partial class DROUsageInfoList
 | 
						|
	{
 | 
						|
		[Serializable()]
 | 
						|
		private class AllForProcedureCriteria
 | 
						|
		{
 | 
						|
			public AllForProcedureCriteria(int itemID)
 | 
						|
			{
 | 
						|
				_ItemID = itemID;
 | 
						|
			}
 | 
						|
			private int _ItemID;
 | 
						|
			public int ItemID
 | 
						|
			{
 | 
						|
				get { return _ItemID; }
 | 
						|
				set { _ItemID = value; }
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public static DROUsageInfoList GetAllForProcedure(ProcedureInfo proc)
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				DROUsageInfoList tmp = DataPortal.Fetch<DROUsageInfoList>(new AllForProcedureCriteria(proc.ItemID));
 | 
						|
				DROUsageInfo.AddList(tmp);
 | 
						|
				tmp.AddEvents();
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on DROUsageInfoList.GetAllForProcedure", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(AllForProcedureCriteria criteria)
 | 
						|
		{
 | 
						|
			this.RaiseListChangedEvents = false;
 | 
						|
			if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsageInfoList.DataPortal_FetchAllForProc", GetHashCode());
 | 
						|
			try
 | 
						|
			{
 | 
						|
				using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
						|
				{
 | 
						|
					using (SqlCommand cm = cn.CreateCommand())
 | 
						|
					{
 | 
						|
						cm.CommandType = CommandType.StoredProcedure;
 | 
						|
						cm.CommandText = "getDROUsagesForProc";
 | 
						|
						cm.Parameters.AddWithValue("@ItemID", criteria.ItemID);
 | 
						|
 | 
						|
						cm.CommandTimeout = Database.DefaultTimeout;
 | 
						|
						using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
 | 
						|
						{
 | 
						|
							IsReadOnly = false;
 | 
						|
							while (dr.Read())
 | 
						|
								this.Add(new DROUsageInfo(dr));
 | 
						|
							IsReadOnly = true;
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsageInfoList.DataPortal_FetchAllForProc", ex);
 | 
						|
				throw new DbCslaException("DROUsageInfoList.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
			this.RaiseListChangedEvents = true;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	public partial class TransitionInfo
 | 
						|
	{
 | 
						|
		internal string _ContentText;
 | 
						|
		public string ContentText
 | 
						|
		{
 | 
						|
			get { return _ContentText; }
 | 
						|
			set { _ContentText = value; }
 | 
						|
		}
 | 
						|
	}
 | 
						|
	public partial class TransitionInfoList
 | 
						|
	{
 | 
						|
		[Serializable()]
 | 
						|
		private class AllForProcedureCriteria
 | 
						|
		{
 | 
						|
			public AllForProcedureCriteria(int itemID, bool from)
 | 
						|
			{
 | 
						|
				_ItemID = itemID;
 | 
						|
				_From = from;
 | 
						|
			}
 | 
						|
			private int _ItemID;
 | 
						|
			public int ItemID
 | 
						|
			{
 | 
						|
				get { return _ItemID; }
 | 
						|
				set { _ItemID = value; }
 | 
						|
			}
 | 
						|
			private bool _From;
 | 
						|
			public bool From
 | 
						|
			{
 | 
						|
				get { return _From; }
 | 
						|
				set { _From = value; }
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public static TransitionInfoList GetAllForProcedure(ProcedureInfo proc, bool from)
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				TransitionInfoList tmp = DataPortal.Fetch<TransitionInfoList>(new AllForProcedureCriteria(proc.ItemID, from));
 | 
						|
				TransitionInfo.AddList(tmp);
 | 
						|
				tmp.AddEvents();
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on TransitionInfoList.GetAllForProcedure", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(AllForProcedureCriteria criteria)
 | 
						|
		{
 | 
						|
			this.RaiseListChangedEvents = false;
 | 
						|
			if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] TransitionInfoList.DataPortal_FetchAllForProc", GetHashCode());
 | 
						|
			try
 | 
						|
			{
 | 
						|
				using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
						|
				{
 | 
						|
					using (SqlCommand cm = cn.CreateCommand())
 | 
						|
					{
 | 
						|
						cm.CommandType = CommandType.StoredProcedure;
 | 
						|
						if(criteria.From)
 | 
						|
							cm.CommandText = "getTransitionsFromProc";
 | 
						|
						else
 | 
						|
							cm.CommandText = "getTransitionsToProc";
 | 
						|
						cm.Parameters.AddWithValue("@ItemID", criteria.ItemID);
 | 
						|
 | 
						|
						cm.CommandTimeout = Database.DefaultTimeout;
 | 
						|
						using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
 | 
						|
						{
 | 
						|
							IsReadOnly = false;
 | 
						|
							while (dr.Read())
 | 
						|
							{
 | 
						|
								TransitionInfo ti = new TransitionInfo(dr);
 | 
						|
								ti.ContentText = dr.GetString("ContentText");
 | 
						|
								this.Add(ti);
 | 
						|
							}
 | 
						|
							IsReadOnly = true;
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				if (_MyLog.IsErrorEnabled) _MyLog.Error("TransitionInfoList.DataPortal_FetchAllForProc", ex);
 | 
						|
				throw new DbCslaException("TransitionInfoList.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
			this.RaiseListChangedEvents = true;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	public partial class DocumentInfoList
 | 
						|
	{
 | 
						|
		[Serializable()]
 | 
						|
		private class AllForProcedureCriteria
 | 
						|
		{
 | 
						|
			public AllForProcedureCriteria(int itemID)
 | 
						|
			{
 | 
						|
				_ItemID = itemID;
 | 
						|
			}
 | 
						|
			private int _ItemID;
 | 
						|
			public int ItemID
 | 
						|
			{
 | 
						|
				get { return _ItemID; }
 | 
						|
				set { _ItemID = value; }
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public static DocumentInfoList GetAllForProcedure(ProcedureInfo proc)
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				DocumentInfoList tmp = DataPortal.Fetch<DocumentInfoList>(new AllForProcedureCriteria(proc.ItemID));
 | 
						|
				DocumentInfo.AddList(tmp);
 | 
						|
				tmp.AddEvents();
 | 
						|
				return tmp;
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				throw new DbCslaException("Error on DocumentInfoList.GetAllForProcedure", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void DataPortal_Fetch(AllForProcedureCriteria criteria)
 | 
						|
		{
 | 
						|
			this.RaiseListChangedEvents = false;
 | 
						|
			if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentInfoList.DataPortal_FetchAllForProc", GetHashCode());
 | 
						|
			try
 | 
						|
			{
 | 
						|
				using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
						|
				{
 | 
						|
					using (SqlCommand cm = cn.CreateCommand())
 | 
						|
					{
 | 
						|
						cm.CommandType = CommandType.StoredProcedure;
 | 
						|
						cm.CommandText = "getLibDocsForProc";
 | 
						|
						cm.Parameters.AddWithValue("@ItemID", criteria.ItemID);
 | 
						|
 | 
						|
						cm.CommandTimeout = Database.DefaultTimeout;
 | 
						|
						using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
 | 
						|
						{
 | 
						|
							IsReadOnly = false;
 | 
						|
							while (dr.Read())
 | 
						|
								this.Add(new DocumentInfo(dr));
 | 
						|
							IsReadOnly = true;
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentInfoList.DataPortal_FetchAllForProc", ex);
 | 
						|
				throw new DbCslaException("DocumentInfoList.DataPortal_Fetch", ex);
 | 
						|
			}
 | 
						|
			this.RaiseListChangedEvents = true;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	[Serializable]
 | 
						|
	[XmlRoot("ConsistencyChecks")]
 | 
						|
	public class ConsistencyChecks
 | 
						|
	{
 | 
						|
		public static ConsistencyChecks Get(string xml)
 | 
						|
		{
 | 
						|
			return GenericSerializer<ConsistencyChecks>.StringDeserialize(xml);
 | 
						|
		}
 | 
						|
		public override string ToString()
 | 
						|
		{
 | 
						|
			return GenericSerializer<ConsistencyChecks>.StringSerialize(this);
 | 
						|
		}
 | 
						|
		private int _ItemID;
 | 
						|
		[XmlAttribute("ItemID")]
 | 
						|
		public int ItemID
 | 
						|
		{
 | 
						|
			get { return _ItemID; }
 | 
						|
			set { _ItemID = value; }
 | 
						|
		}
 | 
						|
		private ROConsistency _ROConsistency = new ROConsistency();
 | 
						|
		[XmlElement("ROChecks")]
 | 
						|
		[Category("Referenced Objects")]
 | 
						|
		[Description("RO Consistency Data")]
 | 
						|
		[DisplayName("RO Consistency")]
 | 
						|
		public ROConsistency ROConsistency
 | 
						|
		{
 | 
						|
			get { return _ROConsistency; }
 | 
						|
			set { _ROConsistency = value; }
 | 
						|
		}
 | 
						|
		public void AddROCheck(string roid, string roValue)
 | 
						|
		{
 | 
						|
			ROConsistency.AddROCheck(roid, roValue);
 | 
						|
		}
 | 
						|
 | 
						|
		private TransitionConsistency _TransitionFromConsistency = new TransitionConsistency();
 | 
						|
		[XmlElement("TransitionFromChecks")]
 | 
						|
		[Category("Transitions")]
 | 
						|
		[Description("Transition From Consistency Data")]
 | 
						|
		[DisplayName("Transition From Consistency")]
 | 
						|
		public TransitionConsistency TransitionFromConsistency
 | 
						|
		{
 | 
						|
			get { return _TransitionFromConsistency; }
 | 
						|
			set { _TransitionFromConsistency = value; }
 | 
						|
		}
 | 
						|
		public void AddTransitionFromCheck(int transitionid, string transitionValue)
 | 
						|
		{
 | 
						|
			TransitionFromConsistency.AddTransitionCheck(transitionid, transitionValue);
 | 
						|
		}
 | 
						|
		private TransitionConsistency _TransitionToConsistency = new TransitionConsistency();
 | 
						|
		[XmlElement("TransitionToChecks")]
 | 
						|
		[Category("Transitions")]
 | 
						|
		[Description("Transition To Consistency Data")]
 | 
						|
		[DisplayName("Transition To Consistency")]
 | 
						|
		public TransitionConsistency TransitionToConsistency
 | 
						|
		{
 | 
						|
			get { return _TransitionToConsistency; }
 | 
						|
			set { _TransitionToConsistency = value; }
 | 
						|
		}
 | 
						|
		public void AddTransitionToCheck(int transitionid, string transitionValue)
 | 
						|
		{
 | 
						|
			TransitionToConsistency.AddTransitionCheck(transitionid, transitionValue);
 | 
						|
		}
 | 
						|
		private TransitionConsistency _TransitionConsistency = new TransitionConsistency();
 | 
						|
		[XmlElement("TransitionChecks")]
 | 
						|
		[Category("Transitions")]
 | 
						|
		[Description("Transition Consistency Data")]
 | 
						|
		[DisplayName("Transition Consistency")]
 | 
						|
		public TransitionConsistency TransitionConsistency
 | 
						|
		{
 | 
						|
			get { return _TransitionConsistency; }
 | 
						|
			set { _TransitionConsistency = value; }
 | 
						|
		}
 | 
						|
 | 
						|
		private LibDocConsistency _LibDocConsistency = new LibDocConsistency();
 | 
						|
		[XmlElement("LibDocChecks")]
 | 
						|
		[Category("Library Documents")]
 | 
						|
		[Description("Lib Doc Consistency Data")]
 | 
						|
		[DisplayName("Lib Doc Consistency")]
 | 
						|
		public LibDocConsistency LibDocConsistency
 | 
						|
		{
 | 
						|
			get { return _LibDocConsistency; }
 | 
						|
			set { _LibDocConsistency = value; }
 | 
						|
		}
 | 
						|
		public void AddLibDocCheck(int docid, DateTime docdate)
 | 
						|
		{
 | 
						|
			LibDocConsistency.AddLibDocCheck(docid, docdate);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	[Serializable]
 | 
						|
	[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
	public class ROConsistency
 | 
						|
	{
 | 
						|
		private DateTime _ROFstDate = DateTime.Now;
 | 
						|
		[XmlAttribute("ROFstDate")]
 | 
						|
		[Description("Date ROFst Generated")]
 | 
						|
		[DisplayName("ROFst Date")]
 | 
						|
		public DateTime ROFstDate
 | 
						|
		{
 | 
						|
			get { return _ROFstDate; }
 | 
						|
			set { _ROFstDate = value; }
 | 
						|
		}
 | 
						|
		private SortedDictionary<string, ROCheck> _ROCheckList = new SortedDictionary<string, ROCheck>();
 | 
						|
		[XmlElement("ROCheck")]
 | 
						|
		[Description("RO Data")]
 | 
						|
		[DisplayName("RO Data")]
 | 
						|
		public ROCheck[] MyROChecks
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				ROCheck[] ros = new ROCheck[_ROCheckList.Count];
 | 
						|
				_ROCheckList.Values.CopyTo(ros, 0);
 | 
						|
				return ros;
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				_ROCheckList = new SortedDictionary<string, ROCheck>();
 | 
						|
				foreach (ROCheck ro in value)
 | 
						|
					_ROCheckList.Add(ro.ROID, ro);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public void AddROCheck(string roid, string roValue)
 | 
						|
		{
 | 
						|
			if (!_ROCheckList.ContainsKey(roid))
 | 
						|
				_ROCheckList.Add(roid, new ROCheck(roid, roValue));
 | 
						|
		}
 | 
						|
		public override string ToString()
 | 
						|
		{
 | 
						|
			return string.Format("{0} ROs", _ROCheckList.Count);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	[Serializable]
 | 
						|
	[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
	public class ROCheck
 | 
						|
	{
 | 
						|
		private string _ROID;
 | 
						|
		[XmlAttribute("ROID")]
 | 
						|
		[Description("RO Unique ID")]
 | 
						|
		public string ROID
 | 
						|
		{
 | 
						|
			get { return _ROID; }
 | 
						|
			set { _ROID = value; }
 | 
						|
		}
 | 
						|
		private string _ROValue;
 | 
						|
		[XmlAttribute("ROValue")]
 | 
						|
		[Description("RO Value")]
 | 
						|
		public string ROValue
 | 
						|
		{
 | 
						|
			get { return _ROValue; }
 | 
						|
			set { _ROValue = value; }
 | 
						|
		}
 | 
						|
		private string _OldROValue;
 | 
						|
		[XmlAttribute("OldROValue")]
 | 
						|
		[Description("Old RO Value")]
 | 
						|
		public string OldROValue
 | 
						|
		{
 | 
						|
			get { return _OldROValue; }
 | 
						|
			set { _OldROValue = value; }
 | 
						|
		}
 | 
						|
		public ROCheck(string roid, string rovalue)
 | 
						|
		{
 | 
						|
			_ROID = roid;
 | 
						|
			_ROValue = rovalue;
 | 
						|
		}
 | 
						|
		public ROCheck()
 | 
						|
		{
 | 
						|
		}
 | 
						|
		public override string ToString()
 | 
						|
		{
 | 
						|
			return string.Format("{0} - '{1}'", ROID, ROValue);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	[Serializable]
 | 
						|
	[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
	public class TransitionConsistency
 | 
						|
	{
 | 
						|
		private SortedDictionary<int, TransitionCheck> _TransitionCheckList = new SortedDictionary<int, TransitionCheck>();
 | 
						|
		[XmlElement("TransitionCheck")]
 | 
						|
		[Description("Transition Data")]
 | 
						|
		[DisplayName("Transition Data")]
 | 
						|
		public TransitionCheck[] MyTransitionChecks
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				TransitionCheck[] ts = new TransitionCheck[_TransitionCheckList.Count];
 | 
						|
				_TransitionCheckList.Values.CopyTo(ts, 0);
 | 
						|
				return ts;
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				_TransitionCheckList = new SortedDictionary<int, TransitionCheck>();
 | 
						|
				foreach (TransitionCheck tc in value)
 | 
						|
					_TransitionCheckList.Add(tc.TransitionID, tc);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public void AddTransitionCheck(int transitionid, string transitionValue)
 | 
						|
		{
 | 
						|
			if (!_TransitionCheckList.ContainsKey(transitionid))
 | 
						|
				_TransitionCheckList.Add(transitionid, new TransitionCheck(transitionid, transitionValue));
 | 
						|
		}
 | 
						|
		public override string ToString()
 | 
						|
		{
 | 
						|
			return string.Format("{0} Transitions", _TransitionCheckList.Count);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	[Serializable]
 | 
						|
	[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
	public class TransitionCheck
 | 
						|
	{
 | 
						|
		private int _TransitionID;
 | 
						|
		[XmlAttribute("TransitionID")]
 | 
						|
		[Description("Transition Unique ID")]
 | 
						|
		public int TransitionID
 | 
						|
		{
 | 
						|
			get { return _TransitionID; }
 | 
						|
			set { _TransitionID = value; }
 | 
						|
		}
 | 
						|
		private string _TransitionValue;
 | 
						|
		[XmlAttribute("TransitionValue")]
 | 
						|
		[Description("Transition Value")]
 | 
						|
		public string TransitionValue
 | 
						|
		{
 | 
						|
			get { return _TransitionValue; }
 | 
						|
			set { _TransitionValue = value; }
 | 
						|
		}
 | 
						|
		private string _OldTransitionValue;
 | 
						|
		[XmlAttribute("OldTransitionValue")]
 | 
						|
		[Description("Old Transition Value")]
 | 
						|
		public string OldTransitionValue
 | 
						|
		{
 | 
						|
			get { return _OldTransitionValue; }
 | 
						|
			set { _OldTransitionValue = value; }
 | 
						|
		}
 | 
						|
		public TransitionCheck(int transitionid, string transitionvalue)
 | 
						|
		{
 | 
						|
			_TransitionID = transitionid;
 | 
						|
			_TransitionValue = transitionvalue;
 | 
						|
		}
 | 
						|
		public TransitionCheck()
 | 
						|
		{
 | 
						|
		}
 | 
						|
		public override string ToString()
 | 
						|
		{
 | 
						|
			return string.Format("{0} - '{1}'", TransitionID, TransitionValue);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	[Serializable]
 | 
						|
	[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
	public class LibDocConsistency
 | 
						|
	{
 | 
						|
		private SortedDictionary<int, LibDocCheck> _LibDocCheckList = new SortedDictionary<int, LibDocCheck>();
 | 
						|
		[XmlElement("LibDocCheck")]
 | 
						|
		[Description("LibDoc Data")]
 | 
						|
		[DisplayName("LibDoc Data")]
 | 
						|
		public LibDocCheck[] MyLibDocChecks
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				LibDocCheck[] lds = new LibDocCheck[_LibDocCheckList.Count];
 | 
						|
				_LibDocCheckList.Values.CopyTo(lds, 0);
 | 
						|
				return lds;
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				_LibDocCheckList = new SortedDictionary<int, LibDocCheck>();
 | 
						|
				foreach (LibDocCheck ld in value)
 | 
						|
					_LibDocCheckList.Add(ld.DocID, ld);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public void AddLibDocCheck(int docid, DateTime docDate)
 | 
						|
		{
 | 
						|
			if (!_LibDocCheckList.ContainsKey(docid))
 | 
						|
				_LibDocCheckList.Add(docid, new LibDocCheck(docid, docDate));
 | 
						|
		}
 | 
						|
		public override string ToString()
 | 
						|
		{
 | 
						|
			return string.Format("{0} LibDocs", _LibDocCheckList.Count);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	[Serializable]
 | 
						|
	[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
	public class LibDocCheck
 | 
						|
	{
 | 
						|
		private int _DocID;
 | 
						|
		[XmlAttribute("DocID")]
 | 
						|
		[Description("Lib Doc Unique ID")]
 | 
						|
		public int DocID
 | 
						|
		{
 | 
						|
			get { return _DocID; }
 | 
						|
			set { _DocID = value; }
 | 
						|
		}
 | 
						|
		private DateTime _DocDate;
 | 
						|
		[XmlAttribute("DocDate")]
 | 
						|
		[Description("Lib Doc Date")]
 | 
						|
		public DateTime DocDate
 | 
						|
		{
 | 
						|
			get { return _DocDate; }
 | 
						|
			set { _DocDate = value; }
 | 
						|
		}
 | 
						|
		private DateTime _OldDocDate;
 | 
						|
		[XmlAttribute("OldDocDate")]
 | 
						|
		[Description("Old Lib Doc Date")]
 | 
						|
		public DateTime OldDocDate
 | 
						|
		{
 | 
						|
			get 
 | 
						|
			{
 | 
						|
				//if (_OldDocDate == DateTime.MinValue)
 | 
						|
				//  return null;
 | 
						|
				return _OldDocDate;
 | 
						|
			}
 | 
						|
			set 
 | 
						|
			{
 | 
						|
				//if (value == null)
 | 
						|
				//  _OldDocDate = DateTime.MinValue;
 | 
						|
				//else
 | 
						|
				//  _OldDocDate = value.Value;
 | 
						|
				_OldDocDate = value;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public LibDocCheck(int docid, DateTime docdate)
 | 
						|
		{
 | 
						|
			_DocID = docid;
 | 
						|
			_DocDate = docdate;
 | 
						|
		}
 | 
						|
		public LibDocCheck()
 | 
						|
		{
 | 
						|
		}
 | 
						|
		public override string ToString()
 | 
						|
		{
 | 
						|
			return string.Format("{0} - '{1}'", DocID, DocDate);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	public enum Rev_Types : int
 | 
						|
	{
 | 
						|
		Revision = 1, TempMod = 2
 | 
						|
	}
 | 
						|
 | 
						|
}
 |